我有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);
}
?>
单击按钮时结果未定义。 谢谢你的帮助..
答案 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']
));
}