Атрибут Ajax для API Instagram пытался исправить ошибку

Я пытаюсь исправить разбиение на страницы Ajax для API Instagram

Показаны всего 20 фотографий. Кнопка «Загрузить больше» не работает.

В консоли:

Uncaught ReferenceError: maxid is not defined 

Вот index.php:

  <script> $(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('<li><img src="' + src + '"></li>'); }); // Store new maxid $('#more').data('maxid', data.next_id); } }); }); }); </script> <?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); $instagram->setAccessToken($data); $media = $instagram->getUserMedia(); } ?> <ul id="photos"> <?php foreach( $media->data as $data ): ?> <li><img src="<?php echo $data->images->thumbnail->url ?>"></li> <?php endforeach; ?> <?php echo "<br><button id=\"more\" data-maxid=\"{$media->pagination->next_max_id}\">Load more ...</button>"; ?> 

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'); 

?

Есть только 2 местоположения с maxid :

Вот:

$ .ajax ({

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 . Если вы просматриваете свой код и очищаете эти идентификаторы, он должен работать.

Вам нужно передать аргумент event щелчком и получить data из event.target .
Измените первые строки кодов на это:

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