【问题标题】:JSON Object To Javascript Array?JSON对象到Javascript数组?
【发布时间】:2014-06-17 20:52:21
【问题描述】:

我在解码 JSON 对象时遇到问题。我使用 Ajax 调用调用 PHP 脚本。 PHP 脚本返回一个 JSON 编码的对象,我可以读取但只能读取第一条记录。如何解码 JSON 对象?我正在使用 JQUERY Mobile。

PHP 脚本:

<?php

    $host = "localhost";
    $user = "root";
    $pass = "[password]";

    $databaseName = "zombieSurvival";
    $tableName = "TBLusers";

    //Connect to mysql database

    include 'DB.php';
    $con = mysql_connect($host,$user,$pass);
    $dbs = mysql_select_db($databaseName, $con);

    // 2) Query database

    $result = mysql_query("SELECT * FROM $tableName");
    $array = mysql_fetch_array($result);
    echo json_encode($array);

?>

这里是 Ajax 调用:

$.ajax({
       url: '/PHP/getUserMarkers.php',
       data: "",
       dataType: 'json',
       success: function(data){

       //How can I treat 'data' variable to make it a
       //javascript array?


       }
       });

【问题讨论】:

  • 即使这是一台localhost 机器,也不建议发布您的密码。
  • 您可以在此副本中看到答案:Converting JSON Object into Javascript array
  • 感谢 Jake - 我的疏忽...我来看看 lulian 发布的副本...
  • "如何解码 JSON 对象?" dataType: 'json' 设置告诉 jQuery 为您解码。因此,只要响应是有效的 JSON,data 就应该已经是 Array。关于“但只有第一条记录”,您必须使用mysql_fetch_array() 循环以收集所有记录的列表。 mysql_fetch_array add all rows?
  • 非常感谢乔纳森!在检查了 lulian 发布的建议中的所有建议后,我可以看到问题似乎正是如此,从 php 脚本传递的对象仅包括第一条记录。正在检查您的链接...

标签: php jquery ajax json


【解决方案1】:

问题在于 PHP 脚本返回的 JSON 对象。调整 PHP 脚本如下,现在我可以访问所有返回的行和单个字段名称。

<?php

    $host = "localhost";
    $user = "root";
    $pass = "muertealregueton";

    $databaseName = "zombieSurvival";
    $tableName = "TBLusers";


    include 'DB.php';
    $con = mysql_connect($host,$user,$pass);
    $dbs = mysql_select_db($databaseName, $con);


    $result = mysql_query("SELECT * FROM $tableName");
    $array = array();
    while(($row = mysql_fetch_array($result))) {
        $array[] = $row;
    }
    echo json_encode($array);

?>

以及在稍后返回的记录之一上调用警报的 ajax 代码:

$.ajax({
       url: '/PHP/getUserMarkers.php',
       data: "",
       dataType: 'json',
       success: function(data){


       //now I can access each row and field
       //like here I access the 3rd field of the 15th record
       alert(data[15][2]);



       }
       });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2014-01-09
    • 2012-10-07
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多