Как передать значение в php
Доброго времени суток. Попробую вкратце описать желаемый результат:
Из базы данных загружаю 5 фотографий: pictures.php $offset=5 if ($result = $mysqli->query("SELECT * FROM `photo` ORDER BY `id` DESC LIMIT $offset, 5", MYSQLI_USE_RESULT)) { В конце страницы, которая вызывае pictures.php должен отображаться див с вызовом следующих 5 фотографий, т.е. $offset+5. После загрузки еще 5 фоток, опять такой див (Как доска на fb). |
ajax.
Вам нужен PHP обработчик и условия запроса. Например по событию onclick делаем ajax запрос и выводим результаты в модальном окне. <a href="#" onclick="load_more()">Загрузить ещё</a> function load_more() { $.ajax({ type: "POST", url: "http://my_site/load_more_photos.php", data: { count: "5", user: "<?=$username?>" } }).done(function( msg ) { alert( "Data Saved: " + msg ); }); } Код load_more_photos.php <? print_r($_POST); ?> |
Спасибо. Но всё таки сам не смог разобраться. Если я правильно понял, то после нажатия на "загрузить еще", должен запуститься load_more_photos.php и вывести "5" и значение $username?
В моём случае файл pictures.php делат запрос в mysql и выводит 5 фотографий из базы данных, мне нужно что бы после нажатия "загрузить еще " без перезагрузки опять запустился pictures.php со значением $offset += 5 Заранее благодарен! |
Не совсем. Ответ load_more_photos.php будет примерно таким
array('count' => '5', 'user' => 'тут_то_значение_которое_вы_подставите') Я внес переменную $username только для того, чтобы показать как передать переменную из основного php-сценария в JS и дальше в PHP-обработчик. Обычно основной сценарий и обработчик отличаются. Поэтому Вам лучше сделать pictures.php и pictures_ajax.php |
Я просто убрал GET и одну переменную и поставил echo, по-этому и предположил, что выведет именно "5".
На данный момент, на странице index.php находится <div id="pagination" ><a href="#" class="add_more" ><input type="text" name="5" id="offset" /> Сама же функция function load_more() { $.ajax({ type: "POST", url: "all_gags_just_uploaded.php", data: {offset:"1"}, success: function(msg){ alert( "Data Saved: " + msg ); } }); } В результате, когда я вызываю с index.php ссылку на load_more, добавляется всё правильно, но не передается значение $offset т.е. добавляется код еще одного pictures.php. Что я делаю не так? Как передать значение $offset обратно в pictures.php при вызове функции load_more? |
1) Не надо ничего передавать назад. Просто счетчик вызовов сделайте:
var offset = 0; function load_more() { offset = offset + 1; $.ajax({ type: "POST", url: "all_gags_just_uploaded.php", data: {offset: offset }, success: function(msg){ alert( "Data Saved: " + msg ); } }); } |
Спасибо, cmd.
С этим разобрался. Счетчик работает и передает значение php обработчику. Но вся информация выводимая php выводится как alert, а мне нужно в виде html страницы (Т.е. что бы добавлялась еще одна фотография после той, которая уже есть на странице index.php). Как можно это сделать? |
Если я правильно понял, то по Вашему скрипту, именно в переменной "msg" хранится вся необходимая информация, но она передается именно как alert.
|
|
Огромная благодарность Вам, cmd.
Для моей цели больше подошел prepend. Но после добавления новой инфы, окно поднимается в положение top, а мне нужно, что бы осталось на том же уровне. Как это сделать? |
Часовой пояс GMT +3, время: 02:55. |