0

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

数据库查询页面:

<?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 origins 必须存储 $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'
];*/

有什么建议么?

4

3 回答 3

1

您可以将 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]);
}
于 2013-03-29T08:51:19.993 回答
0

只需 json_encode 数据:

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

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

于 2013-03-29T08:53:02.323 回答
0

使用退出;回显 $data 之后;在你的 php 代码中。

然后更新你的 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声明行;

于 2013-03-29T09:26:16.213 回答