从查询sql数据库获取数据到javascript [英] getting data from query sql database to javascript
问题描述
我的代码存在问题。
的情况如下:
我有一个下拉列表,如果选择个人,它会出现包含数据的新下拉列表从数据库查询中检索,如果选择public,则下拉消失。
这样的HTML代码:
< select name =useclass =dropdownid =senderonChange ='changeSend()'>
< option value = 1>公开< / option>
< option value = 0>个人< / option>
< / select>
< div id ='send2'>< / div>
这样的查询:
<?php
$ query = mysql_query(select * from data where id_user ='$ id_user'order by date asc);
$ i = 0;
$ id = array();
$ name = array();
while($ data = mysql_fetch_array($ query)){
//结果数据库查询中的id
$ id [$ i] = $ data ['id'];
//结果数据库查询中的名称
$ name [$ i] = $ data ['name'];
$ i ++;
}
?>
这样的JavaScript代码:
function changeSend(){
var selectBox = document.getElementById(sender);
var selectedValue = selectBox.options [selectBox.selectedIndex] .value;
if(selectedValue == 0){
$('#send2')。html(< select class ='dropdown'>< option value =' - result from result database-' > -name from result database query-< / option>< / select>);
} else {
$('#send2')。html('');
$ / code $ / pre
我不知道如何发送值/结果($ id [0],$ name [0],$ id [1],$ name [1]等等。)
to javascript code(value and name in select options )。
解决方案在JavaScript中,您必须将 ajax call
你的PHP文件:
var xmlhttp;
if(window.XMLHttpRequest)
{//代码为IE7 +,Firefox,Chrome,Opera,Safari
xmlhttp = new XMLHttpRequest();
}
else
{//代码为IE6,IE5
xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
}
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4&& xmlhttp.status == 200)
{
document.getElementById(send2)。innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open(GET,yourFile.php,true);
xmlhttp.send();
在你的php文件中,你必须 echo
您的数据以JSON格式:
echo json_encode(array('id'=> $ id,'name'=> ; $名));
更新
在您的案例中使用以下代码:
(未测试)
php code:
< ;?php
$ query = mysql_query(select * from data where id_user ='$ id_user'order by date asc);
$ i = 0;
$ options = array();
while($ data = mysql_fetch_array($ query)){
$ options [$ data ['id']] = $ data ['name'];
}
echo json_encode($ options);
?>
javascript代码:
var xmlhttp;
if(window.XMLHttpRequest){//代码为IE7 +,Firefox,Chrome,Opera,Safari
xmlhttp = new XMLHttpRequest();
}
else {//代码为IE6,IE5
xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4&& xmlhttp.status == 200){
var response = JSON。解析(xmlhttp.responseText);
var select ='< select class ='dropdown'>';
for(var index in response){
select = select +< option value ='+ index +'>+ response [index] +< /选项>中;
}
选择+ =< / select>;
document.getElementById(send2)。innerHTML = select;
function changeSend(){
var selectBox = document.getElementById(sender);
var selectedValue = selectBox.options [selectBox.selectedIndex] .value;
if(selectedValue == 0){
xmlhttp.open(GET,yourFile.php,true);
xmlhttp.send();
}
else {
$('#send2')。html('');
code $ <$ $ p
使用jQuery
javascript代码:
function changeSend(){
var selectBox = document.getElementById(sender);
var selectedValue = selectBox.options [selectBox.selectedIndex] .value;
if(selectedValue == 0){
$ .get(yourFile.php,function(data){
var response = JSON.parse(data);
var select ='< select class ='dropdown'>';
for(var index in response){
select = select +< option value =' + index +'>+ response [index] +< / option>;
}
select + =< / select>;
$(#send2)。html(select);
});
$ b $ else {
$('#send2')。html('');
}
}
I have a problem with my code.
case like this:
I have a dropdown, if selected "personal" it appeared the new dropdown that contains the data that is retrieved from a database query, if selected "public", then the dropdown disappear.
HTML code like this:
<select name="use" class="dropdown" id="sender" onChange='changeSend()'>
<option value=1>Public</option>
<option value=0>Personal</option>
</select>
<div id='send2'></div>
Query like this:
<?php
$query = mysql_query("select * from data where id_user = '$id_user' order by date asc");
$i = 0;
$id = array();
$name = array();
while($data = mysql_fetch_array($query)){
//id from result database query
$id[$i] = $data['id'];
//name from result database query
$name[$i] = $data['name'];
$i++;
}
?>
JavaScript code like this:
function changeSend() {
var selectBox = document.getElementById("sender");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;
if (selectedValue==0) {
$('#send2').html("<select class='dropdown'><option value='-id from result database-'>-name from result database query-</option></select>");
} else {
$('#send2').html('');
}
}
I dont know how to send value/result ($id[0],$name[0],$id[1],$name[1], etc..)
to javascript code(value and name in select options).
解决方案 In javascript you have to make an ajax call
to your php file:
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("send2").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","yourFile.php",true);
xmlhttp.send();
And in your php file you have to echo
your data in JSON format:
echo json_encode(array('id'=>$id,'name'=>$name));
UPDATE
in your case use the following code:
(not tested)
php code:
<?php
$query = mysql_query("select * from data where id_user = '$id_user' order by date asc");
$i = 0;
$options = array();
while($data = mysql_fetch_array($query)){
$options[$data['id']] = $data['name'];
}
echo json_encode($options);
?>
javascript code:
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
var response = JSON.parse(xmlhttp.responseText);
var select = '<select class='dropdown'>';
for( var index in response ){
select = select + "<option value='"+ index +"'>"+response[index]+"</option>";
}
select += "</select>";
document.getElementById("send2").innerHTML= select;
}
}
function changeSend() {
var selectBox = document.getElementById("sender");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;
if (selectedValue==0) {
xmlhttp.open("GET","yourFile.php",true);
xmlhttp.send();
}
else {
$('#send2').html('');
}
}
USING jQuery
javascript code:
function changeSend() {
var selectBox = document.getElementById("sender");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;
if (selectedValue==0) {
$.get("yourFile.php", function(data){
var response = JSON.parse(data);
var select = '<select class='dropdown'>';
for( var index in response ){
select = select + "<option value='"+ index +"'>"+response[index]+"</option>";
}
select += "</select>";
$("#send2").html(select);
});
}
else {
$('#send2').html('');
}
}
这篇关于从查询sql数据库获取数据到javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!