我使用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'
];*/
有什么建议吗?
答案 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 声明行