json_encode返回空php数组
我试图向ajax发送一个php数组,但它不起作用。老实说,我不知道我做错了什么 我使用的是返回null的json_encode 我的php代码:json_encode返回空php数组,php,ajax,json,Php,Ajax,Json,我试图向ajax发送一个php数组,但它不起作用。老实说,我不知道我做错了什么 我使用的是返回null的json_encode 我的php代码: $info = array(); $info['NEW YORK CITY'] = array( 'Name' => 'New York City' ); $city = $_POST['city']; if (strtoupper($city) === 'NEW YORK CITY') { echo "Name: " . json_enc
$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_编码。现在我把数组放在上面,它就可以工作了。json\u encode接受数组作为参数 这样就需要以下步骤
array('key' => 'value')
$city = $_POST['city'];
if (strtoupper($city) === 'NEW YORK CITY') {
echo json_encode($info['NEW YORK CITY']);
} else {
echo json_encode(array("error."));
}
这将作为格式正确的json key:value发送。但是单个值将无法正确处理,并可能导致不必要的结果。用以下代码替换您的php代码
array('key' => 'value')
$city = $_POST['city'];
if (strtoupper($city) === 'NEW YORK CITY') {
echo json_encode($info['NEW YORK CITY']);
} else {
echo json_encode(array("error."));
}
如果可行,请尝试以下方法:
$city = $_POST['city'];
if (strtoupper($city) === 'NEW YORK CITY') {
echo json_encode(['Name' => $info['NEW YORK CITY']['Name'] ]);
} else {
echo json_encode(['error']);
}
阿贾克斯:
您的ajax应该在提交之后,然后它将触发ajax函数。json\u encode的第一个参数不限于数组。字符串或数字是完全可以接受的输入。虽然正确,但要跟上实践,它更直接,而且通常是建议的。但我错了。向询问用户或任何其他观众发送。这里有一个指向json_encode文档的链接。我可以看到打印的\u r$info$信息=数组$信息['NEW YORK CITY']=数组'Name'=>'纽约市','Rank'=>'美国第一','人口'=>'8491079';