![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
06.12.2012, 17:37
|
Кандидат Javascript-наук
|
|
Регистрация: 06.12.2012
Сообщений: 100
|
|
Как передать значение в 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).
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
07.12.2012, 00:14
|
![Аватар для cmd](https://javascript.ru/forum/image.php?u=12418&dateline=1300532355) |
Профессор
|
|
Регистрация: 19.03.2011
Сообщений: 177
|
|
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);
?>
__________________
Cogito, ergo sum
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
07.12.2012, 01:04
|
Кандидат Javascript-наук
|
|
Регистрация: 06.12.2012
Сообщений: 100
|
|
Спасибо. Но всё таки сам не смог разобраться. Если я правильно понял, то после нажатия на "загрузить еще", должен запуститься load_more_photos.php и вывести "5" и значение $username?
В моём случае файл pictures.php делат запрос в mysql и выводит 5 фотографий из базы данных, мне нужно что бы после нажатия "загрузить еще " без перезагрузки опять запустился pictures.php со значением $offset += 5
Заранее благодарен!
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
07.12.2012, 02:13
|
![Аватар для cmd](https://javascript.ru/forum/image.php?u=12418&dateline=1300532355) |
Профессор
|
|
Регистрация: 19.03.2011
Сообщений: 177
|
|
Не совсем. Ответ load_more_photos.php будет примерно таким
array('count' => '5', 'user' => 'тут_то_значение_которое_вы_подставите')
Я внес переменную $username только для того, чтобы показать как передать переменную из основного php-сценария в JS и дальше в PHP-обработчик.
Обычно основной сценарий и обработчик отличаются. Поэтому Вам лучше сделать pictures.php и pictures_ajax.php
__________________
Cogito, ergo sum
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
07.12.2012, 02:36
|
Кандидат Javascript-наук
|
|
Регистрация: 06.12.2012
Сообщений: 100
|
|
Я просто убрал 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?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
07.12.2012, 16:23
|
![Аватар для cmd](https://javascript.ru/forum/image.php?u=12418&dateline=1300532355) |
Профессор
|
|
Регистрация: 19.03.2011
Сообщений: 177
|
|
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 );
}
});
}
__________________
Cogito, ergo sum
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
09.12.2012, 17:34
|
Кандидат Javascript-наук
|
|
Регистрация: 06.12.2012
Сообщений: 100
|
|
Спасибо, cmd.
С этим разобрался. Счетчик работает и передает значение php обработчику. Но вся информация выводимая php выводится как alert, а мне нужно в виде html страницы (Т.е. что бы добавлялась еще одна фотография после той, которая уже есть на странице index.php). Как можно это сделать?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
09.12.2012, 17:36
|
Кандидат Javascript-наук
|
|
Регистрация: 06.12.2012
Сообщений: 100
|
|
Если я правильно понял, то по Вашему скрипту, именно в переменной "msg" хранится вся необходимая информация, но она передается именно как alert.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
09.12.2012, 18:21
|
![Аватар для cmd](https://javascript.ru/forum/image.php?u=12418&dateline=1300532355) |
Профессор
|
|
Регистрация: 19.03.2011
Сообщений: 177
|
|
См в доках: append, appendTo, prepend
Например:
Цитата:
|
$('.inner').append(msg);
|
__________________
Cogito, ergo sum
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
10.12.2012, 15:20
|
Кандидат Javascript-наук
|
|
Регистрация: 06.12.2012
Сообщений: 100
|
|
Огромная благодарность Вам, cmd.
Для моей цели больше подошел prepend.
Но после добавления новой инфы, окно поднимается в положение top, а мне нужно, что бы осталось на том же уровне. Как это сделать?
|
|
|
|