Instagram API的Ajax分页尝试修复bug

我正在尝试修复Instagram API的Ajax分页

仅显示了20张照片。 “加载更多”按钮不起作用。

在控制台中:

Uncaught ReferenceError: maxid is not defined 

这是index.php:

   $(document).ready(function() { $('#more').click(function() { var max_id = $(this).data('nextid'); $.ajax({ type: 'GET', url: 'ajax.php', data: { max_id: maxid }, dataType: 'json', cache: false, success: function(data) { // Output data $.each(data.images, function(i, src) { $('#photos').append('
  • '); }); // Store new maxid $('#more').data('maxid', data.next_id); } }); }); }); '*****', 'apiSecret' => '*****', 'apiCallback' => '******' )); // Receive OAuth code parameter $code = $_GET['code']; if (true === isset($code)) { $data = $instagram->getOAuthToken($code); $instagram->setAccessToken($data); $media = $instagram->getUserMedia(); } ?>
      data as $data ): ?>
    • <img src="https://stackoverflow.com/questions/13166868/ajax-pagination-for-instagram-api-tried-to-fix-bug/images->thumbnail->url ?>">
    • <?php echo "
      "; ?>

    ajax.php:

     require_once 'instagram.class.php'; $instagram = new Instagram(array( 'apiKey' => '****', 'apiSecret' => '*****', 'apiCallback' => '*******' )); // Receive OAuth code parameter $code = $_GET['code']; if (true === isset($code)) { $data = $instagram->getOAuthToken($code); // Initialize class for public requests $instagram->setAccessToken($data); $media = $instagram->getUserMedia(); // Receive AJAX request and create call object $maxID = $_GET['next_max_id']; $clientID = $instagram->getApiKey(); $call = new stdClass; $call->pagination->next_max_id = $maxID; $call->pagination->next_url = "https://api.instagram.com/v1/users/self/media/recent?client_id={$clientID}&max_id={$maxID}"; // Receive new data $media = $instagram->pagination($call); // Collect everything for json output $images = array(); foreach ($media->data as $data) { $images[] = $data->images->thumbnail->url; } echo json_encode(array( 'next_id' => $media->pagination->next_max_id, 'max_id' => $media->pagination->max_id, 'images' => $images )); 

    我正在使用https://github.com/cosenary/Instagram-PHP-API

    谢谢!

    如何更清楚:

     Uncaught ReferenceError: maxid is not defined 

    maxid未在您的代码中定义。 在这一行中定义的是max_id

     var max_id = $(this).data('nextid'); 

    看起来像

     .data('nextid'); 

    是一个不小心的错误,因为你的DOM中不存在。 除非它在其他地方并且你没有发布它。

    你的意思是

     .data('maxid'); 

    maxid只有2个位置:

    这里:

    $就({

    max_id:maxid
    },

    和这里:

    //存储新的maxid
    $(’#more’)。data(’maxid’,data.next_id);

    当您使用定义的max_id替换这些出现时(感谢@mathieu),应该修复它。

    在你的ajax.php你有一条线:

    $ maxID = $ _GET [‘next_max_id’];

    这与您上面的调用不对应,您有一个max_id 。 好像你混合了一些next/max/id 。 如果您查看代码并清理这些ID,它应该可以正常工作。

    您需要通过单击传递event参数并从event.target获取data
    将第一行代码更改为:

     $('#more').click(function( event ) { var max_id = $(event.target).data('nextid');