从Javascript / jQuery访问PHP中的数组

时间:2015-04-17 00:32:23

标签: php jquery arrays json

我将所有html,php和javascript / jquery代码放在一个文件中。我在php(json_encode($ arr))中有一个数组$ arr,打印时显示php中的数据。如何在javascript中访问它。该数组包含查询执行的结果集中的所有行。我查了jsonParse和var json_obj =但没有得到任何结果。我是新手所以任何帮助表示赞赏。我的代码到目前为止在php:

$result_again = $conn->query($sql_again);
if ($result_again->num_rows > 0) 
{
    $resultarray = array();
    while($row_again = $result_again->fetch_assoc()) 
    {
        $resultarray[] = $row_again;
    }
}
echo json_encode($resultarray);

我在.js文件中的代码:

 $( document ).ready(function() {
 $.ajax({
      type: "GET",
      dataType: "json",
      url: "secondform.php",
      success: function(data) {
        alert("Result: " + data);
      }
    });
});

1 个答案:

答案 0 :(得分:2)

第1步:

将json_encode($ arr)渲染为javascript字符串变量。

var json = '<?= json_encode($arr) ?>';

第2步:

将JSON字符串解析为javascript对象。

var obj = JSON.parse(json);

或者如果你正在使用jQuery:

var obj = jQuery.parseJSON(json);

您现在有一个javascript对象,您可以访问以下属性:)

alert(obj.title); // show object title
alert(obj[0].id); // grab first row of array and show 'id' column

编辑 - 回复slugspeeds更新

好的,所以看起来你正在使用jQuery这样做AJAX方式。由于你的PHP脚本使用json_encode(),jQuery $ .ajax()应该返回一个javascript数组对象。

$( document ).ready(function() {
    $.ajax({
      type: "GET",
      dataType: "json",
      url: "secondform.php",
      success: function(arr) {
        console.log(arr); // show array in console (to view right-click inspect element somewhere on screen, then click console tab)

        $.each(arr, function( index, row ) { // loop through our array with jQuery
            console.log('array row #'+index, row); // show the array row we are up to
            // you can do what you want with 'row' here
        });

      }
    });
});

供参考: https://developer.chrome.com/devtools/docs/console