我正在尝试将一个php数组发送到ajax,但它不起作用。说实话,我不知道我做错了什么。
我正在使用返回null的json_encode()。
我的PHP代码:
$arr['worldpopulation']= $emparray[];
$fp = fopen('jsonparsetutorial.txt', "w");
fwrite($fp, json_encode($arr));
fclose($fp); ?>
我的ajax代码:
$info = array();
$info['NEW YORK CITY'] = array(
'Name' => 'New York City'
);
$city = $_POST['city'];
if (strtoupper($city) === 'NEW YORK CITY') {
echo "Name: " . json_encode($info['NEW YORK CITY']['Name']) . ".<br>";
} else {
echo "error.";
}
修正了它!我在数组之前有json_encode。现在我将数组放在最上面了。
答案 0 :(得分:0)
json_encode接受数组作为参数
这将采取以下
array('key' => 'value')
这将以正确格式化的json key:value发送。但是单个值将无法正确处理,并可能导致不必要的结果。
答案 1 :(得分:0)
用以下
替换您的PHP代码$city = $_POST['city'];
if (strtoupper($city) === 'NEW YORK CITY') {
echo json_encode($info['NEW YORK CITY']);
} else {
echo json_encode(array("error."));
}
答案 2 :(得分:0)
如果有效,请尝试此操作:
$city = $_POST['city'];
if (strtoupper($city) === 'NEW YORK CITY') {
echo json_encode(['Name' => $info['NEW YORK CITY']['Name'] ]);
} else {
echo json_encode(['error']);
}
的Ajax:
$('form.ajax').on('submit', function() {
var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};
that.find('[name]').each(function(index, value) {
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
$.ajax({
url: url,
type: type,
data: data,
success: function(response) {
//console.log(response);
$('form.ajax').html(response);
}
}).fail(function(jqXHR) {
alert(jqXHR.statusText);
});
return false;
});
});
你的ajax应该在提交之后然后它将触发AJAX函数。