![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| xZ0RGx |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 5.6.2009 Репутация: нет Всего: нет |
Суть задачи.
Надо адаптировать PHP код под AJAX, чтобы не перезагружалась каждый раз страница. Фронтэнд и бэкенд одно и то же, все крутится на локалхосте на нем крутится и будет. Мой первый опыт работы с jQuery и AJAX вообще. test.php
test2.php
Как работало на PHP. Из БД делается выборка всех жанров, после чего они выводятся на страницу в foreach'е. Каждый элемент это ссылка передающая GET'ом название выбранного жанра. Далее из GET'а параметр передается в функцию которая отбирает всех артистов в выбранном жанре. Ну что тут можно переделать. например можно генерировать ссылки так, что по onclick будет присваиваться значение js переменной genre c именем выбранного жанра. а как дальше значение этой перменной передать скрипту test2.php аяксом? Тяжко осваиваются новые технологии, товарищи |
||||
|
|||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
как то расплывчато звучит, можешь сформулировать вопрос более четко? из того что понял тебе необходимо из javascript передать данные на сервер при помощи ajax возможностей библиотеки jQuery? если так то ты можешь передать их аяксом через массивы GET или POST. Если методом GET то просто формируешь ссылку вида sitename.ru/scriptname.php?argument1=znachenie1[&argument2=znachenie2[&......]] и передаешь по этой ссылке аякс запрос. Если передачу данных необходимо провести через POST то формируешь запрос вида
И в первом и во втором случае argument1=znachenie1[&argument2=znachenie2[&......]] есть те данные которые тебе необходимо передать. Это сообщение отредактировал(а) krundetz - 9.7.2009, 01:09 |
|||
|
||||
| xZ0RGx |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 5.6.2009 Репутация: нет Всего: нет |
Ну сначала хотелось бы разобраться почему скрипт работает некорректно если отсылает данные сам на себя.
По нажатию на кнопку должен вставляться ответ сервера. Но почему-то он вставляется вместе с кнопкой ------------------------------- Ну а потом хотелось бы понять как мне надо генерировать на PHP ссылки.
Все жанры выбираются из БД и естественно такая менюшка генерируется PHP. Запрос к БД, а потом вывод из полученного массива через foreach(). |
||||
|
|||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 7 Всего: 22 |
$("body").append(answ);
Ты к имеющейся странице добавляешь подгружаемый контент, поэтому данные "наслаиваются". Обычно делают двумя способами: а) $("body").empty().html(answ) - я тоже делаю с очисткой и б) replaceWith (кажись) - синтаксис посмотри в доке jQuery - заменяет содержимое на новое. Правда, чего я не понял, - зачем менять страницу ajax'ом, а не перегружать, когда ты меняешь ее полностью? Обычно подгрузкой меняют какие-то данные или определенный КОНТЕЙНЕР - обычно DIV. Думаю, тебе стоит оптимизировать проект, сделать рестайлинг страницы и менять контейнер(ы), а не всю страницу. |
|||
|
||||
| xZ0RGx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 5.6.2009 Репутация: нет Всего: нет |
А, ну я пока не волшебник. Я только учусь Спасибо большое за ответ. Если посоветуете какой-нибудь учебник с примерами, то тоже буду благодарен. Только совсем для идиотов чтобы, а то я как-то статей 5 наверное уже прочел разных и никак не въезжаю почему-то =( UPD: вроде сделал. работает... завтра будет второй заход ) Это сообщение отредактировал(а) xZ0RGx - 21.7.2009, 04:40 |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
xZ0RGx, посмотри вот этот ресурс
|
|||
|
||||
| xZ0RGx |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 5.6.2009 Репутация: нет Всего: нет |
Был там. Спасибо за ссылку. Не могу сказать чтобы там разжевывалось. У меня такой вот вопрос еще.
В общем есть два дива на странице. Мне надо менять контент и в одном и другом одновременно. Как это сделать? Сейчас у меня вот так.
А мне надо по сути как-то так:
Как получить из PHP два разных ответа? Как PHP узнает какой ответ куда положить? |
||||
|
|||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 7 Всего: 22 |
Добавляй в ответ скрипт, который будет менять твои select и navigation.
P.S. Очень не советую использовать id с такими названиями как select. |
|||
|
||||
| xZ0RGx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 5.6.2009 Репутация: нет Всего: нет |
Не очень понял. Как это?
Обработчик на PHP выглядит примерно так.
|
|||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 7 Всего: 22 |
Это не форум по ПэХаПэ, я в нем не разбираюсь. Сформируй нужный контент и всунь его в серверный код.
|
|||
|
||||
| ksnk |
|
||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
xZ0RGx, Мысль первая -"дешевая"
Мысль вторая - правильная. Если пользоватся не текстовым форматом вывода, а json, то выглядеть в JavaScript'е все это может вот так
На стороне Php формируется массив
Вариант примерно такой-же стоимости - использовать Xml вместо json -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||||
|
|||||||
| xZ0RGx |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 5.6.2009 Репутация: нет Всего: нет |
Мдеее.
ksnk: Спасибо большое за развернутый ответ. Очень все доходчиво. Если, бы мог поставил плюс в репу Попробую на днях с JSON или XML. Хотя на крайний случай и «дешёвая» мысль сгодится, я думаю. Это сообщение отредактировал(а) xZ0RGx - 28.7.2009, 05:03 |
|||
|
||||
| Photon |
|
|||
|
Злобный программер ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 27.2.2009 Где: Таганрог Репутация: нет Всего: 12 |
ksnk, а кто сказал, что при запросе, указанном в мысли второй, данные, полученные с сервера, сразу распарсятся в массив? Кто будет указывать тип возвращаемого значения? По умолчанию-то, однако, xml или html
Так что надо малость подправить запросик:
Это сообщение отредактировал(а) Photon - 2.8.2009, 04:20 -------------------- With best regards.. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Photon, ну да, dataType указывать надо... это упустил...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |