我收到一个奇怪的错误,我不确定为什么会这样。我正在尝试向我的ajax调用发送多个值,这会产生undefined
。
我尝试调试它,我意识到我的PHP正在使用json_encode
解析错误。原因似乎是多个值的传递。任何人都能解释为什么会这样吗?
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$files = glob("images/*.*");
for ($i=0; $i<count($files); $i++) {
$image = $files[$i];
}
echo json_encode("array_of_images" => $files, "size_of_array" => sizeof($files));
?>
更新:Ajax代码
<script>
$.ajax({ //create an ajax request to load_page.php
type: "GET",
url: "img.php",
dataType: "html", //expect html to be returned
success: function(response){
alert(response.array_of_images);
alert(response.size_of_array);
},
error:function (xhr, ajaxOptions, thrownError){
// alert(thrownError);
}
});
</script>
答案 0 :(得分:4)
传递给json_encode的第二个值应该是选项,而不是更多数据。您需要将参数设置为数组,而不是将其作为2个值传递:
echo json_encode(array("array_of_images" => $files, "size_of_array" => sizeof($files)));
答案 1 :(得分:2)
添加标头和json_encode接收作为参数的数组,所以它就像这样:
header('Content-Type: application/json');
echo json_encode(["array_of_images" => $files, "size_of_array" => sizeof($files)]);
答案 2 :(得分:2)
json_encode
接受数组。所以你必须像
echo json_encode(array("array_of_images" => $files, "size_of_array" => sizeof($files)));