从查询sql数据库获取数据到javascript [英] getting data from query sql database to javascript

查看:952
本文介绍了从查询sql数据库获取数据到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆