mysql查询到js ...并将结果存储在var中

时间:2013-03-29 08:44:26

标签: php javascript mysql variables

我使用mysql查询从db获取数据。这些数据将通过以下方式用于js函数:

db query页面:

<?php
   $server   = "localhost"; // MySql host name
   $username = "root"; // MySQL username
   $password = ""; // MySQL password
   $dbname   = "admins"; // MySQL database name
   $table    = "usersvisit"; // MySql table name
   $db=mysql_connect($server,$username,$password) or die(mysql_error());
   mysql_select_db($dbname) or die(mysql_error());
   $results=mysql_query("SELECT * FROM $table LIMIT 30") or die(mysql_error());
   $data="[";
   while($row=mysql_fetch_assoc($results))
   {
      $data.= "'".$row['idUser']."',";
   }
   $data.="];";
   echo $data;
?>

然后在HTML页面中我想将检索到的数据声明为一个名为origins的变量,因此var origin必须存储$ data以便稍后在其他js函数中使用它:

function createRequest()
{
    var xmlhttp = false;
    try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try {xmlhttp = new   ActiveXObject("Microsoft.XMLHTTP");}catch(E){xmlhttp = false;}}
    if(!xmlhttp && typeof XMLHttpRequest!='undefined'){try{xmlhttp = new XMLHttpRequest();}catch(e){xmlhttp=false;}}
    if(!xmlhttp && window.createRequest){try{xmlhttp = window.createRequest();}catch(e){xmlhttp=false;}}
    return xmlhttp;
}
window.onload=createRequest;

// Make an xmlHttpRequest to query_database.php
function request_database_query()
{
    var url = "query_database.php";
    var con=createRequest();
    con.open("GET",url,true);
    con.onreadystatechange=function()
    {
       if(con.readyState==4 && con.status==200)
       {
          document.getElementById("div2").innerHTML=con.responseText;
       }
    }
    con.send(null);
}
window.onload=request_database_query;

 var origins= ... // in this var i want to store the data to be as the followling
/*var origins = [
  'Euston',
  'Kings Cross',
  'Liverpool St',
  'Paddington',
  'St. Pancras',
  'Victoria',
  'Waterloo'
];*/

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您可以将json_encode的结果存储在PHP中的数组中,并在javascript中以var值存储。在您的情况下,您可以将$ data更改为数组,并将每个$ row ['idUser']存储在那里,然后json_encode并将其传递给您的html页面。

示例如下:

$results=mysql_query("SELECT * FROM $table LIMIT 30") or die(mysql_error());
$data=array();
while($row=mysql_fetch_assoc($results))
{
    $data[] = $row['idUser'];
}

echo "var origins = " . json_encode($data) . ";";

然后在javascript中

alert(origins);
for(var i = 0; i < origins.length; i++) {
   alert(origins[i]);
}

答案 1 :(得分:0)

只需json_encode数据:

var origins = <?php echo json_encode($data) ?>

其中$ data是您要打印的数据的PHP数组。

答案 2 :(得分:0)

在php代码中的 echo $ data; 之后使用退出;

然后更新您的JS函数: request_database_query(),如下所示:

function request_database_query()
{
    var origins = null;   
    var url = "index.php";
    var con=createRequest();
    con.open("GET",url,true);
    con.onreadystatechange=function()
    {
        if(con.readyState==4 && con.status==200)
        {     
            document.getElementById("div2").innerHTML=con.responseText;
            origins = con.responseText;
        }
    }
    con.send(null);

    if(origins != null){
        // call your other JS functions here or do your JS works here
    } 
 }
 window.onload=request_database_query;

window.onload = request_database_query;

之后删除 var origins 声明行