Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2012, 17:37
Кандидат Javascript-наук
Отправить личное сообщение для Mateus Посмотреть профиль Найти все сообщения от Mateus
 
Регистрация: 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).
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2012, 00:14
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 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
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2012, 01:04
Кандидат Javascript-наук
Отправить личное сообщение для Mateus Посмотреть профиль Найти все сообщения от Mateus
 
Регистрация: 06.12.2012
Сообщений: 100

Спасибо. Но всё таки сам не смог разобраться. Если я правильно понял, то после нажатия на "загрузить еще", должен запуститься load_more_photos.php и вывести "5" и значение $username?
В моём случае файл pictures.php делат запрос в mysql и выводит 5 фотографий из базы данных, мне нужно что бы после нажатия "загрузить еще " без перезагрузки опять запустился pictures.php со значением $offset += 5
Заранее благодарен!
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2012, 02:13
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 19.03.2011
Сообщений: 177

Не совсем. Ответ load_more_photos.php будет примерно таким
array('count' => '5', 'user' => 'тут_то_значение_которое_вы_подставите')

Я внес переменную $username только для того, чтобы показать как передать переменную из основного php-сценария в JS и дальше в PHP-обработчик.

Обычно основной сценарий и обработчик отличаются. Поэтому Вам лучше сделать pictures.php и pictures_ajax.php
__________________
Cogito, ergo sum
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2012, 02:36
Кандидат Javascript-наук
Отправить личное сообщение для Mateus Посмотреть профиль Найти все сообщения от Mateus
 
Регистрация: 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?
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2012, 16:23
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 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
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2012, 17:34
Кандидат Javascript-наук
Отправить личное сообщение для Mateus Посмотреть профиль Найти все сообщения от Mateus
 
Регистрация: 06.12.2012
Сообщений: 100

Спасибо, cmd.
С этим разобрался. Счетчик работает и передает значение php обработчику. Но вся информация выводимая php выводится как alert, а мне нужно в виде html страницы (Т.е. что бы добавлялась еще одна фотография после той, которая уже есть на странице index.php). Как можно это сделать?
Ответить с цитированием
  #8 (permalink)  
Старый 09.12.2012, 17:36
Кандидат Javascript-наук
Отправить личное сообщение для Mateus Посмотреть профиль Найти все сообщения от Mateus
 
Регистрация: 06.12.2012
Сообщений: 100

Если я правильно понял, то по Вашему скрипту, именно в переменной "msg" хранится вся необходимая информация, но она передается именно как alert.
Ответить с цитированием
  #9 (permalink)  
Старый 09.12.2012, 18:21
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 19.03.2011
Сообщений: 177

См в доках: append, appendTo, prepend

Например:
Цитата:
$('.inner').append(msg);
__________________
Cogito, ergo sum
Ответить с цитированием
  #10 (permalink)  
Старый 10.12.2012, 15:20
Кандидат Javascript-наук
Отправить личное сообщение для Mateus Посмотреть профиль Найти все сообщения от Mateus
 
Регистрация: 06.12.2012
Сообщений: 100

Огромная благодарность Вам, cmd.
Для моей цели больше подошел prepend.
Но после добавления новой инфы, окно поднимается в положение top, а мне нужно, что бы осталось на том же уровне. Как это сделать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как значение переменной из javascript передать в php? mobiledeveloper Общие вопросы Javascript 1 02.05.2012 20:00
Как передать onclick-функции значение value другого элемента sibbora Общие вопросы Javascript 3 30.10.2011 18:07
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как правильно передать значение. xadv Работа 2 05.11.2010 12:55
Как передать значение по ссылке на другую страницу сайта Rollo Общие вопросы Javascript 7 18.10.2010 15:02