![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
anurbol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
Я только недавно выучил PHP и скоро заканчиваю сайт. Но вот проблема - мне в одном месте сайта нужно использовать что-то вроде ajax. И у меня нет времени только из-за одной менюшки учить новые языки. Вобщем задача стоит такая - После того как пользователь сделал выбор в ниспадающем меню (например страну), нужно ему предостаить второе меню "города" чтобы города соответствовали стране. На самом деле у меня не город и страну нужно выбрать, а другое, но долго объяснять. Просто, люди добрые покажите несведущему в js как это реализовать на этом примере.
|
|||
|
||||
anurbol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
если вы когда нибудь регистрировались нa vkontakte.ru то там наверно видели такую фичу. Неужели никто не знает?
|
|||
|
||||
Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 5 Всего: 42 |
http://www.w3schools.com/ajax/ajax_server.asp - хороший пример js-стороны кода
А лучше прочитать весь короткий и несложный тьюториал http://www.w3schools.com/ajax/default.asp -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Качай либу и юзай. Я юзал sajax.
P.S.
|
|||
|
||||
anurbol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
Сэнкс
![]() |
|||
|
||||
anurbol |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
вот сделал менюшку ajax'ом. А теперь другая проблема. в ie все ок. А вот в опере и фф - выпадающее меню не передает значения. то есть само меню нормально показывается и значения для него из базы данных извлекаюься, однако при переходе на следующую страницу переходят все данные, кроме сгенерированных аяксом.
вот пхп
что не так с совместимостью с фф и оперой? ![]() |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
|
|||
|
||||
anurbol |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
А что там не так? Все там правильно. Я же говорю в ie все работает на ура. А вот в опере и файрфоксе нет. Я наверное недостаточно ясно осветил проблему. Итак, есть выпадающее меню(dropdown)"страны"со списком стран. При совершении выбора страны, ajax генерирует второе выпадающее меню "города". Это все сделано, как вы понимаете для того чтобы в США не оказалось Минска, а в Беларуси Вашингтона. Тут проблем нет, все работает во всех браузерах. Но дальше этого в опере и фф дело не идет... form action="1.php" этот скрипт сделан просто для теста и выглядит таким образом:
в ie выводит: RussiaMoscow в опере и firefox: Russia для полной ясности покажу урл в iexplorer:1.php?strany=Russia&goroda=Moscow&submit=Go%21 и урл в opera и firefox:1.php?strany=Russia&submit=Go%21 иными словами значение из меню не передается. пожалуйста, умные люди, покажите как решить проблему? два дня над ней сижу ![]() ![]() ![]() ![]() Добавлено через 8 минут и 45 секунд
кстати, а что за sajax? во всех браузерах работает? |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
anurbol, sql-inj у тебя. И справляй
более того, возьми за правило писать скрипт так, чтобы он не выдавал варнингов и нотайсов при любых условиях. Будет время - гляну твою страничку. |
|||
|
||||
anurbol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
Спасибо за замечание по безопасности
![]() ![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
sajax работает во всех. Там насколько помню раньше было 2 ошибки - с кириллицей и с пост-запросами, но исправлялись элементарно. Попробуй ее юзать.
|
|||
|
||||
Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 5 Всего: 42 |
anurbol, покажите html-код формы. Что собой представляет элемент с id='strany'? Если select - то у него не гарантированно поле value (посмотрите в спецификации на w3.org). Занчение из select нужно доставать конструкцией
Это может быть причиной Вашей проблемы. nerezus, ИМХО sajax неудобен. Он ограничивает Вас в использовании буферизации. Если Вы попытаетесь использовать sajax в проекте, использующем функции из серии ob_start(), ob_end_flush(), сталкнетесь с проблемами -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
anurbol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
в index.php включен хедер, а в него включен файл js(<script src=ajax.js></script>форма в index.php выглядит следующим образом
выше было все остальное(в js должно быть не function showSubctg(str), а function showStrany, опечатка ![]() сейчас уже думаю, лучше бы не было ни оперы ни ff |
|||
|
||||
Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 5 Всего: 42 |
anurbol, это все внутри какого-то тега <form>? В action этого <form> не передаются занчения? Я не вижу в Вашем коде <input> или <select> с name='goroda'. Передается только то, что в активных эоементах. Дайте больший кусок кода, от <form> до </form>.
P.S. в onchange тожу лучше поставить showCountry(this.options[this.selectedIndex].value -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
anurbol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
Вобщем, долго бившись об клавиатуру головой, я уже отказался от этой затеи
![]() ![]() |
|||
|
||||
anurbol |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
<form action=\"1.php\" method=\"get\">" ._SELECTCOUNTRY."</td> <td align=\"left\"> <select name=\"strany\" id=\"strany\" onchange=\"showStrany(this.options[this.selectedIndex].value)\"> <option>"._SELECTCOUNTRY."</option> <option value=\"armenia\">"._ARMENIA."</option> <option value=\"azerbaijan\">"._AZERBAIJAN."</option> <option value=\"belarus\">"._PEOPLE."</option> <option value=\"georgia\">"._GEORGIA."</option> </select></td></tr> <tr><td>"._SELECTCITY."</td> <td id=\"goroda\"><!--здесь - место для городов--> </td></form>
см. 2 скрипт в 6 посте.
В смысле активных? |
||||||||
|
|||||||||
Golda |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 5 Всего: 42 |
По поводу <input name="goroda"> Вы правы, не досмотрела. Спасибо, что обратили внимание
Все-таки Вы, видимо, не весь код внутри <form> привели. Например, судя по URL, приведенным в одном из предыдущих постов,
у Вас есть еще где-то кнопка submit с текстом Go. Ну да ладно, думаю, того что Вы привели, достаточно. 1. Получается, что <form> находится внутри одного <td>, элементы внутри другого, а закрывающий тег </form> внутри третьего. Броузеры не любят таких издевательств. Открывайте тег <form> до начала всей таблицы, а закрывайте после. 2. В результате, после AJAX-запроса, у Вас появятся <td id="goroda"> и <select name="goroda">. Эти одинаковые имена могут сыграть с Вами злую шутку уже в Internet Explorer, который любит путать name и id. Если эти моменты исправить, код должен заработать. Еще не понимаю, зачем Вам текущее значение strany вычислять 2 раза. Тем более, что параметр goroda, судя по приведенным кускам кода, не только полностью совпадает с strany, но и не используется обработчиком. В общем, вот мой отладочный вариант, который работал во всех 3 интересующих Вас броузерах test.php
goroda.php
Это сообщение отредактировал(а) Golda - 4.8.2007, 16:29 -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
||||||
|
|||||||
anurbol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 30.5.2007 Где: Алматы, Казахстан Репутация: нет Всего: нет |
![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: X технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |