小编典典

如何使用PHP和Ajax将数组传递给Javascript?

ajax

如果这个解释不清楚,我很抱歉,我也很难理解。 如何使用PHP和Ajax将数组发送到Javascript?
我正在使用Ajax来获取照片阵列,然后希望将其追加到<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;将数据发送到成功回调,但它似乎不是可用的格式。

如果我var_dump($photos)在PHP中执行,结果将类似于:

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的最佳方法是什么?


阅读 241

收藏
2020-07-26

共1个答案

小编典典

尝试:

$.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
2020-07-26