2017-01-09 153 views
0

Putting mySQL Database Information into a JavaScript Array獲得通過AJAX

我試圖用傳球MYSQL數據AJAX的上面的例子,但它僅採用了單維數組,如何從一個多維數組獲取數據從MySQL/PHP的多維結果?

這裏有一些測試代碼,我試過(load_ajax.php):

<?php 
$mysqli=mysqli_connect("localhost","root","admin","database_name"); 

// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$mysqli->set_charset("utf8"); 

$i=0; 
$arraylist=""; // Initialise local array for icons 
$result = $mysqli->query('select * from word_table'); 

while($row=$result ->fetch_object()) {    
    $arraylist[$i]["word_id"]=$row->word_id; 
    $arraylist[$i]["word_name"]=$row->word_name; 
    $i++; 
} 

//convert the PHP array into JSON format, so it works with javascript 
echo json_encode($arraylist); 
?> 

而在HTML(load_ajax.html):

$.ajax({ 
    url: "load_ajax.php", 
    datatype: "json", 
    success: function(data, textStatus, xhr) { 
     data = JSON.parse(xhr.responseText); 
     for (i=0; i<data.length; i++) { 
      alert(data[i]["word_id"]+"/"+data[i]["word_name"]);  
     } 
    } 
}); 

上面的代碼不會爲工作我。以前我只使用PHP來生成我的數組並直接輸出到HTML。現在我想使用AJAX將PHP中的MySQL數據加載到javascript多維數組中,該數組可以與其他本地函數交互使用。

回答

0

我試過不同的瀏覽器(Firefox)上的代碼,它沒有問題。

我不知道爲什麼它不能在Chrome中工作。重新加載頁面不會讓它再次工作。必須關閉窗口並重試。

工作抱歉!

0

請嘗試下面的代碼。

$.ajax({ 
    url: "load_ajax.php", 
    dataType: "json", 
    success: function(data, textStatus, xhr) { 
       data = JSON.parse(xhr.responseText); 
       $.each(data, function(i, item) { 
       alert(data[i].word_id +"/" +data[i].word_name); 
       });​ 
      } 
}); 
0

使用jquery的$.each()內部AJAX function.The each()方法指定一個函數爲每一個匹配元素運行。

$.ajax({ 
    url: "load_ajax.php", 
    datatype:"json", 
    success: function(data, textStatus, xhr) { 
        data = JSON.parse(data); 
        $.each(data, function(index,element){ 
         alert(element.word_id); 
         alert(element.word_name); 
        }); 

       } 
    }); 

更多清楚的看到小提琴這裏... http://www.w3schools.com/code/tryit.asp?filename=FBKCNOC7O3B8