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 という変数に宣言したいので、後で他の js 関数で使用するために、var origins に $data を格納する必要があります。

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 に答える