javascript - ajax 尝试访问 d[obj].src 时返回未定义

标签 javascript php jquery ajax

AJAX

  function ajax_json_gallery(folder) {
      alert(folder);
      var thumbnailbox = $('#thumbnailbox');
      $.ajax({
          type: "POST",
          url: "json_gallery_data.php",
          contentType: "application/x-www-form-urlencoded",
          dataType: "json",
          data: "folder=" + folder,
          success: function(d) {
              for (var obj in d) {
                  if (d.hasOwnProperty(obj)) {
                      alert(d[obj]); //access data// 
                      alert(d[obj].src); //undefined//
                  }
              }
          }
      });
  }

PHP

header('Content-Type: application/json');
$folder = "Img/Company1/Jersey1";
$dir = $folder."/";
$dirHandle = opendir($dir); 
$i = 0;
$directoryfiles = array();
while ($file = readdir($dirHandle)) {
    if(!is_dir($file) && preg_match("/.jpg|.gif|.png/i", $file)){
        $i++;
        $src = "$dir$file";
$directoryfiles[] = '"img'.$i.'":{ "num":"'.$i.'","src":"'.$src.'", "name":"'.$file.'" },';
    }
}
closedir($dirHandle);

echo json_encode($directoryfiles);

console.log(d)

[""img1":{ "num":"1","src":"Img/House1/Type1/Image1.png", "name":"Image1.png" },", 
    ""img2":{ "num":"2","src":"Img/House1/Type1/Image2.png", "name":"Image2.png" },", 
    ""img3":{ "num":"3","src":"Img/House1/Type1/Image3.png", "name":"Image3.png" },", 
    ""img4":{ "num":"4","src":"Img/House1/Type1/Image4.png", "name":"Image4.png" },"]

x3

我正在使用ajax获取文件夹目录中的所有图像,然后返回ajax,但是当我尝试访问d[o].src时,它返回未定义,我不知道我在这里缺少什么。

最佳答案

不要尝试自己编写 JSON 文本。只需创建一个关联数组或 stdClass 对象,添加适当的键/值,然后将其添加到 $directoryfiles 中。 json_encode 然后将进行正确的编码

$directoryfiles = array();
while ($file = readdir($dirHandle)) {
    if(!is_dir($file) && preg_match("/.jpg|.gif|.png/i", $file)){
        $i++;
        $src = "$dir$file";
        $temp = new stdClass;
        $temp->num = $i;
        $temp->src = $src;
        $temp->name = $file;
        $directoryfiles["img".$i] = $temp;
    }
}
closedir($dirHandle);

echo json_encode($directoryfile);

关于javascript - ajax 尝试访问 d[obj].src 时返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32815467/

相关文章:

javascript - 如何将 dd/mm/yyyy 字符串转换为 JavaScript Date 对象?

jquery - mvc中jquery无法获取json数据

jquery - 根据 MVC/jquery 中的地址显示 Google map

javascript - 单击链接时显示 jQuery Accordion?

javascript - Flash 影片上的跨浏览器下拉/弹出菜单

javascript - Jest Axios 测试在不应该通过的时候通过了

javascript - 如何使正则表达式不区分大小写?

php - 在 Laravel 中为 Controller 传递默认数据

php - preg_replace 数字并在结果中使用

php - 在 laravel 中使用外键保存对象