【问题标题】:How to use jQuery to get data from a json_encode data in the php file?如何使用 jQuery 从 php 文件中的 json_encode 数据中获取数据?
【发布时间】:2014-03-16 16:24:36
【问题描述】:

我是编码新手。我正在尝试在客户端显示数据库中的所有图片。我可以在我的 php 文件上执行此操作,但我无法使用 jQuery 获取 json_encode 数据。 有人可以帮我吗?提前谢谢!

这是我的 PHP 代码:

foreach ($pictures as $picture){
      $photos = "<p><img src='".$picture['link']."' width='200' height='200'></p><p id='title'>".$picture['title']."</p><p id='descr'>".$picture['descr']."</p>";
      echo json_encode($photos);
}

这是我的 JavaScript:

$.ajax({                                      
        type: 'GET',
        url: 'server/picture_client.php',        
        dataType: 'json',                  
        success: function(photos){     
        if(photos){
            var data = $.parseJSON(photos);
            $("#grid").append(data);

        }else{
            alert("oops nothing happened :(");
        }        
    }

再次感谢您!

【问题讨论】:

  • 有什么问题?会发生什么?
  • 不要打电话给$.parseJSON。当您指定 dataType: 'json' 时,jQuery 会为您执行此操作。
  • 您的 JSON 没有任何意义。如果您只想回显一串 HTML,则没有理由使用 JSON。如果不是,JSON 不能像这样连接。
  • 我第一次尝试使用 .get() 在我的 php 文件中获取回显数据。那是成功的,但是它也会在同一个 php 文件中获得其他回显字符串...所以我做了一些研究并尝试了 .ajax() 和 json_encode...但是那样并没有让我得到任何显示在我的 html 客户端。

标签: javascript php jquery json get


【解决方案1】:

在这种情况下,您实际上并不需要 json,您只需发送 html:

foreach ($pictures as $picture){
      $photos .= "<p><img src='".$picture['link']."' width='200' height='200'></p><p id='title'>".$picture['title']."</p><p id='descr'>".$picture['descr']."</p>";
}
echo $photos;

然后将 html 附加到您的元素:

$.ajax({                 
    type: 'GET',
    url: 'server/picture_client.php',        
    dataType: 'html',                  
    success: function(photos){     
    if(photos){
        $("#grid").append(photos);

    }else{
        alert("oops nothing happened :(");
    }        
}

【讨论】:

    【解决方案2】:

    既然你已经提供了dataType: 'json',你不需要再做$.parseJSON你的数据,你可以使用:

    $("#grid").append(photos);
    

    【讨论】:

      【解决方案3】:

      试试这个,

       foreach ($pictures as $picture){
        $photos[] = "<p><img src='".$picture['link']."' width='200' height='200'></p><p id='title'>".$picture['title']."</p><p id='descr'>".$picture['descr']."</p>";      
       }
      echo json_encode('photos' => $photos);
      

      jquery:

      $.ajax({                                      
          type: 'GET',
          url: 'server/picture_client.php',        
          dataType: 'json',
          success: function(results){  
             $.each(results.photos, function(i, item) {
               $("#grid").append(item);
             });​ 
          }
      });
      

      【讨论】:

      • 也感谢您的帮助!
      猜你喜欢
      • 2017-07-10
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多