Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: jQuery Ajax select без перезагрузки
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
Всем привет!
Не имею привычки спрашивать что-то на форумах, но здесь не вижу другого выхода, вроде всё верно, но не хочет работать.
Подскажите, пожалуйста, что не так?
По клику на кнопку слой отображается, а по "onchange" - ничего не происходит.
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
JqNooB пишет:
по "onchange" - ничего не происходит.
Как ничего? Отправляется ajax запрос. Но это всё, что происходит, на результат этого запроса никаких действий не указано. http://api[dot]jquery[dot]com/jQuery[dot]ajax/ , callback на success или другое какое понравившееся событие.
----- PostgreSQL DBA
AlexAnder
Отправлено: 28 Октября, 2012 - 13:48:18
Частый посетитель
Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012 Откуда: Россия
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
Мелкий пишет:
callback на success или другое какое понравившееся событие.
Можно подробней? Я с Аяксом дел не имел до этого.
Мне нужно только чтобы этому скрипту передалась $_POST['page']; (то есть произошло действие, аналогичное нажатию кнопки).
Если я добавляю
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
JqNooB пишет:
Я с Аяксом дел не имел до этого.
А он тут и ни при чём. Это банальный JS с фреймворком. Гуглите, по основам js и jquery информации даже в рунете выше крыши.
----- PostgreSQL DBA
JqNooB
Отправлено: 28 Октября, 2012 - 19:11:41
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
Мелкий пишет:
Гуглите, по основам js и jquery информации даже в рунете выше крыши.
Естественно я сначала погуглил, сделал всё по мануалу, вот по этому http://programilla[dot]com/blog/site[dot][dot][dot]ruction/231[dot]html
Но результата нет, я же написал сразу, что не в моих правилах на форуме писать, т.к. обязательно найдётся такой умный человек, который про поисковую систему напомнит -"ОЧЕНЬ" вам за это признателен.
З.Ы. Вопрос рассчитан на тех, кто сталкивался с ним ранее и знает решение. Зачем писать попусту? Либо скопируйте и попробуйте запустить, добавив недостающее, затем скажите, чего не хватало - и я буду вам очень благодарен за помощь, либо оставьте свои наставления при себе.
Мелкий
Отправлено: 28 Октября, 2012 - 19:43:27
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
JqNooB пишет:
сделал всё по мануалу, вот по этому http://programilla.com/blog/site...ruction/231.html
Да? Странно, ничего похожего.
По ссылке как раз реализован success.
JqNooB пишет:
Либо скопируйте и попробуйте запустить
Зачем, если и так очевидно, что банально обработчика результата запроса нет?
----- PostgreSQL DBA
JqNooB
Отправлено: 28 Октября, 2012 - 19:56:30
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
Мелкий пишет:
банально обработчика результата запроса нет?
Мне не нужен результат, мне нужно асинхронно отправить этому скрипту post-запрос, из тела кода вы виде, что я ловлю его уже в php?
Вы напишите сразу ещё 30 постов, я вижу по статистике, что каждый 33-й бывает полезным.
caballero
Отправлено: 28 Октября, 2012 - 20:02:35
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
во первых передавать именно через POST здесь не имеет смысла
во вторых поставь обработчик на ошибку а не success
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
caballero пишет:
во-первых,
во- вторых
Пожалуйста, напишите код, я не работаю ни с js, ни jq, ни с ajax (указал это в нике, я слишком стар, чтобы жевать мануалы, память уже не та, вам молодым проще), потому прошу, исправьте код. Мои нейронные сети ещё способны понимать аналогии, потому это будет единственным полезным решением.
Мелкий
Отправлено: 28 Октября, 2012 - 20:21:35
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
JqNooB пишет:
мне нужно асинхронно отправить этому скрипту post-запро
Ну так вы это сделали. Абсолютно никакой реакции в браузере быть и не должно.
JqNooB пишет:
я ловлю его уже в php?
И что?
Так и должно быть. PHP поймал запрос, обработал, умер. Всё. А результат его работы должен обрабатывать браузер. А браузеру никаких указаний не дано, ну и выкидывает в /dev/null
Момент, вы хотите сказать, что представленный листинг - и есть test.php?
Тогда обратите внимание, что в приведённой статье обработчик AJAX'а отличается от обработчика обычного запроса (обычного запроса там и нет). В частности - возвращает только фрагмент данных, которые будут вставлены внутрь div'а.
----- PostgreSQL DBA
JqNooB
Отправлено: 28 Октября, 2012 - 20:41:17
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
Мелкий пишет:
JqNooB пишет:
мне нужно асинхронно отправить этому скрипту post-запро
Ну так вы это сделали.
Мелкий пишет:
В частности - возвращает только фрагмент данных, которые будут вставлены внутрь div'а.
Вооот уже есть немного понимания. Да, это листинг test.php. Я просто доподлинно не знаю, что делает функция $.ajax(), нагуглил - попробовал - не робит.
Давайте, чтобы в остальных 29-ти постах вам было проще, я опишу работу скрипта.
1. У нас есть выпадающий список, в котором пользователь выбирает тип страницы.
2. Есть подключение jQ-библиотеки.
3. Есть скрипт, который в идеале должен срабатывать при смене вариата в меню. Его задача - значение этого варианта (value) вернуть обратно скрипту в виде пост-запроса.
4. Есть условие на php, которое в зависимости от текущего значения переменной $_POST['page'] возвращает определённое содержание. В этом примере появляется "срамота" (в рабочей версии я заменю это на html-код дополнительных полей, требуемых для этого типа страницы).
5. Есть кнопка submit - чисто для проверки, что без Ajax всё работает. Если на неё нажать, то происходит отправка пост-запроса этому скрипту и появляется "срамота".
Задача - сделать появление "срамоты" без перезагрузки (нажатия кнопки) по действию "onchange".
Panoptik
Отправлено: 28 Октября, 2012 - 20:57:13
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
у вас есть 2 файла:
к примеру ваш пример index.php
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
Panoptik пишет:
посмотреть внимательно думаю можно заметить разницу
Огромное спасибо, придали понимания, сдвинулось с места.
В подключении JQ не хватало "//" в начале, то, как вы описали - работает, как вы описали, но задача иная, должно работать из одного файла.
У меня получилось так:
Само по себе это решение работает, но когда переношу в полную версию, происходит какая-то уличная магия: при срабатывании функции - дублируются ВСЕ селекты.
Сколько раз функция сработала - столько выпадающих списков и получается. Дублируются даже селекты, в которых вообще эта функция не задействована. При этом работает только последний из дублей - остальные не выпадывают.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.