如果这个解释不清楚,我很抱歉,我也很难理解。 如何使用PHP和Ajax将数组发送到Javascript? 我正在使用Ajax来获取照片阵列,然后希望将其追加到<div>页面上的空白处。
<div>
jQuery如下所示:
$.ajax({ url: "<?php echo site_url('demo/getPhotos/'); ?>", type: 'POST', data: form_data, success: function(data) { alert(data); }
PHP函数getPhotos如下所示:
<?php $photos = array(); foreach ($data as $photo) { array_push($photos,$photo['source']); } // echo json_encode($photos); How should I be returning $photos?
如果仅echo $photos;将数据发送到成功回调,但它似乎不是可用的格式。
echo $photos;
如果我var_dump($photos)在PHP中执行,结果将类似于:
var_dump($photos)
array(4) { [0]=> string(14) "some_image.jpg" [1]=> string(14) "some_image.jpg" [2]=> string(14) "some_image.jpg" [3]=> string(14) "some_image.jpg" }
我已经尝试过json_encode诸如此类的各种组合,但实际上我在猜测并且不确定其背后的理论。在这种情况下,将数据从PHP传递到Javascript的最佳方法是什么?
json_encode
尝试:
$.ajax({ url: "<?php echo site_url('demo/getPhotos/'); ?>", type: 'POST', data: form_data, dataType:"json", success: function(data) { alert(data[0]); }
在PHP方面,您将需要打印:
print json_encode($photos);
为了更好地封装代码,您还可以尝试做另一件事,例如,作为进一步实现JSON欺骗的示例:
print json_encode(array("photolist"=>$photos,"photo_owner"=>"Me!"));
然后,在服务器上,您可以使用以下命令访问它们:
data.photolist[0]; //First photo data.photo_owner; //The owner of the photo set