【问题标题】:ajax function not returning right dataajax函数没有返回正确的数据
【发布时间】:2014-04-20 07:47:18
【问题描述】:

我正在尝试从这个 ajax 函数(缩略图图像,图像的所有者)中获取正确的信息。我认为它不知道 data.images[i].imgurl 和 data.images[i].username 是什么。

ajax.php

  require_once 'instagram.class.php';

  // Initialize class for public requests
  $instagram = new Instagram('123456');

  // Receive AJAX request and create call object
  $tag = $_GET['tag'];
  $maxID = $_GET['max_id'];
  $clientID = $instagram->getApiKey();

  $call = new stdClass;
  $call->pagination->next_max_id = $maxID;
  $call->pagination->next_url = "https://api.instagram.com/v1/tags/{$tag}/media/recent?client_id={$clientID}&max_tag_id={$maxID}";

  // Receive new data
  $media = $instagram->getTagMedia($tag,$auth=false,array('max_tag_id'=>$maxID));

  // Collect everything for json output
  $images = array();

  foreach ($media->data as $data) {
 $images[] = array(
           "imgurl"=>$data->images->thumbnail->url,
        "username"=>$data->user->username;
        );
    }

  echo json_encode(array(
    'next_id' => $media->pagination->next_max_id,
    'images'  => $images,

  ));

search.php

<script>
   $(document).ready(function() {
    $('#more').click(function() {
    var tag   = $(this).data('tag'),
        maxid = $(this).data('maxid'),


    $.ajax({
      type: 'GET',
      url: 'ajax.php',
      data: {
        tag: tag,
        max_id: maxid

      },
      dataType: 'json',
      cache: false,
      success: function(data) {
        // Output data
        $.each(data.images, function(i, src) {

          $('#photos').append('<div id=box><div class=mainimg><img src="'+  data.images[i].imgurl +'"></div><div class=\"pfooter\">'+ data.images[i].username +'</div></div>');
        });

        // Store new maxid
        $('#more').data('maxid', data.next_id);
      }
    });
  });
});

..

【问题讨论】:

  • 用分号替换前面的逗号/删除逗号。
  • 好的,可以解决“未捕获的语法”错误!

标签: javascript php jquery ajax pagination


【解决方案1】:

在您的search.php 文件中,您必须用分号关闭变量语句。

改变这一行:

var tag   = $(this).data('tag'),
    maxid = $(this).data('maxid'),

到这里:

var tag   = $(this).data('tag'),
    maxid = $(this).data('maxid'); // <-- added semicolon

【讨论】:

  • 谢谢您,这清除了错误。但是仍然没有正确传递 data.images[i].imgurl。
  • 我不确定返回的data 对象的外观如何,但请先尝试控制台记录该对象,然后查看它返回的内容。然后你就知道如何遍历那个对象了。
  • 我只是在控制台中为它试图加载的图像得到一个“空 - 未找到”
  • 是的,但是将console.log(data) 作为成功函数的第一行并检查data 是什么。
  • GET http://......./[object%20Object] 404(未找到)jquery.min.js:4(匿名函数)search.php:34
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
相关资源
最近更新 更多