【问题标题】:How to work jQuery AJAX with PHP array [closed]如何使用 PHP 数组使用 jQuery AJAX [关闭]
【发布时间】:2014-10-03 04:29:01
【问题描述】:

我有一个类似的 jquery ajax 请求;

$.ajax({
url : 'fun_val_itmco.php',
type : 'POST',
data : "agnco="+agnco+"&itmco="+itmco,
dataType : 'json',
success : function(data){                       
    //How to get array data separately?
    //itmid ?
    //itmco ?
    //itmna ?
}        
});             

处理程序 fun_val_itmco.php 设置为返回一个类似的数组;

$agco=htmlspecialchars(trim(@$_POST['agnco']));
$itco=htmlspecialchars(trim(@$_POST['itmco']));

$str=mysql_query("SELECT `iid`, `ico`, `ina`, `cvl`  FROM `itemmas` WHERE `aco`='".$agco."' AND `ico`='".$itco."'");
$dar=mysql_fetch_array($str);
$display_json = array();
$json_arr = array();
try {
    $json_arr["itmid"]=$dar['iid'];
    $json_arr["itmco"]=$dar['ico'];
    $json_arr["itmna"]=$dar['ina'];
    array_push($display_json, $json_arr);       
}catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
echo json_encode($display_json);

请帮帮我,如何分别获取数组数据?

【问题讨论】:

  • jeroen 给出了正确答案。此外(但题外话),为什么你有一个围绕数组分配的 try catch 块?这些分配永远不会抛出异常,更不用说 PDOException。
  • 我做那个 console.log(data); var json_obj = $.parseJSON(data); var itmid=json_obj[0].itmid; var itmco=json_obj[0].itmco; var itmna=json_obj[0].itmna; var itmcv=json_obj[0].itmcv;

标签: javascript php jquery arrays ajax


【解决方案1】:

你必须把你的数据字符串变成一个对象。您可以使用 jQuery 的 parseJSON

var obj = jQuery.parseJSON( data );
alert( obj.name === "John" );

【讨论】:

  • @ABShaman 在您的帖子中,您拥有成功的功能。在其中,您只需粘贴我上面提供的代码,并将警报的内容更改为 obj.itmid。它会提醒您放入该变量的数据。它将数据(将在 success 函数中返回)更改为一个对象,您可以在其中获取该数据集中的任何元素,只需将其添加到您刚刚创建的对象之后。
  • 这个不用了,json如果有效的话已经被jQuery解析过了。
  • 好的,我做到了,谢谢
【解决方案2】:

您将结果推送到一个空数组,虽然这似乎没有必要,但这就是您需要添加数组索引来访问值的原因:

data[0].itmid
data[0].timco
// etc.

删除array_push 行并仅使用$json_arr 会更容易。

除此之外:

  • htmlspecialchars 不是防止 sql 注入的正确方法,您应该切换到 PDO 或 mysqli 和准备好的语句,或者如果确实必须使用 mysql_real_escape_string
  • 您不会使用已弃用的 mysql_* 函数获得任何 PDO 异常。

【讨论】:

    猜你喜欢
    • 2017-01-03
    • 2018-08-20
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多