从数组查询获取对象json值的错误

时间:2013-09-05 07:21:29

标签: php javascript ajax

我有javascript json的问题。我可以从ajax post获得价值。

剧本就像这样。

<script> function makeAjaxCall()
{ 
    $.ajax({ 
        type: "post", 
        data: $('#form1').serialize(), 
        url: "http://localhost/SPKM/new_file.php", 
        cache: false,   
        success: function(json){        
        var obj = jQuery.parseJSON(json); 
        var r = obj['STATUS'];
        alert(r);
    } 
});
} 
</script>

和这样的形式..

<form name="form1" id="form1">
<input type="text" name="value" id="value">
<input type="button" name="Submit" onkeypress="makeAjaxCall()">
</form>

和new_file.php一样..

<?
$query = "SELECT sum(in)-sum(out) AS total FROM $tableName";
   $result = mysql_query($query);
   while($row = mysql_fetch_array($result))
   { 
   $phpVar = array("STATUS",$row['total']));
   echo json_encode($phpVar);
   }
?>

单击按钮时结果未定义。 谢谢你的帮助..

3 个答案:

答案 0 :(得分:2)

你的数组将是结构

[0] => "STATUS"
[1] => somevalue

正如您所看到的,没有索引“STATUS”,因此obj['STATUS']将返回未定义的内容。在数组创建中添加=>或者获取obj的第一个索引。

答案 1 :(得分:1)

那是未定义的,因为你的数组不是关联映射。

<?php
$array = array('status' => $row['total']);
?>

答案 2 :(得分:0)

js

$.ajax({ 
    type: "post", 
    data: $('#form1').serialize(), 
    url: "http://localhost/SPKM/new_file.php", 
    cache: false,   
    success: function(json){
        console.log( json.STATUS );
    }
});

PHP

while($row = mysql_fetch_array($result)) {
    echo json_encode(array(
        "STATUS"=> $row['total']
    ));
}