|
|
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите решить проблемку. хочу сделать меню выбора страны и города. Поскольку городов у нас много, то при выборе страны подгружать с сервера автоматически. Как сделать что б сервер отдавал данные по входящим value=id я знаю, а вот как отправить их туда и принять? большая просьба, подскажите примерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2008, 23:33 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
скажите честно - самостоятельно влом погуглить? В тырнете примеров миллиарды. Простейшее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Как должна выглядеть функция createRequestObject(), какие использованы методы и их описание можно прочитать даже в энциклопедии - XMLHttpRequest . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 00:40 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
да я гуглил, не поверите - неделю все рабочее время... но туго понимаю я что к чему :-( вот, последний вариант который хоть как то работает, но написан крыво, а как ровнее сделать... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 01:17 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
illion, а будет ли ваш код совместим со всеми браузерами? в примере который я привел используется скрипт http://xkr.us/code/javascript/XHConn/ котрый по утверждению авторов поддерживает: Apple Safari 1.2+ Microsoft Internet Explorer 5.0+ (Windows) Mozilla 0.7.3+ -- includes Firefox, Camino, etc. Opera Browser 7.60 P1+ (Note: GET support only, as Opera doesn't yet support the setRequestHeader() method.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 01:24 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
yarnikillion, а будет ли ваш код совместим со всеми браузерами? будет, если Вы пройдете по указанной мною ссылке и посмотрите, как правильно кроссбраузерно создавать объект XMLHttpRequest ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 01:36 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
собственно, Ваш XHConn.js использует практически тот же самый код: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 01:45 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Ярник, я в шоке ... посмотри, будь добр, последние 3 страницы данного форума - найдешь минимум 3-4 темы по данному вопросу, причем с подробным кодом ... и не колупай мозг ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 02:18 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
IDVsbruckЯрник, я в шоке ... а чего тут в шоке быть. Элементарная лень. Я вот захожу в гугл, пишу "ajax список городов", щелкаю по первой же открывшейся ссылке и наблюдаю там подробный пример. На поиск потрачено полминуты жизни. А человек "гуглил, не поверите - неделю все рабочее время" и вот те на! - ничего не нашел. Надо же, мистика какая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 04:51 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
IDVsbruck - сам в шоке! illion - ОГРОМНОЕ СПАСИБО за обе ссылочки, именно то что я искал неделю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 11:35 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
illion, возможно ли вас услышать в асе 258050? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 16:04 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
illion... захожу в гугл, пишу "ajax список городов", щелкаю по первой же открывшейся ссылке и наблюдаю там подробный пример ... Ужасный пример на этой странице: у них Украина по-английски написана как "Ukrain". Не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 16:28 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
IDVsbruckУжасный пример на этой странице: у них Украина по-английски написана как "Ukrain". Не подходит. Совершенно с вами согласен! поэтому ищу специалиста который смог бы исправить данную оЧепятку :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 16:32 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
IDVsbruck illion... захожу в гугл, пишу "ajax список городов", щелкаю по первой же открывшейся ссылке и наблюдаю там подробный пример ... Ужасный пример на этой странице: у них Украина по-английски написана как "Ukrain". Не подходит. судя по "RUSSIAN", автор под "Ukrain" имел в виду не Украину, а "украинский". Но это у него тоже не получилось. Хорошо хоть USA не стал склонять. В целом в плане кода пример некорректен (сорри, раньше лень было вчитываться), но если объединить его с примером из википедии, то получится нормальный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 16:52 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
yarnik IDVsbruckУжасный пример на этой странице: у них Украина по-английски написана как "Ukrain". Не подходит. Совершенно с вами согласен! поэтому ищу специалиста который смог бы исправить данную оЧепятку :-) думаю, Вы его не найдете. Судя по Вашим вопросам, код целиком надо за Вас писать, а кто ж захочет. Я вот не хочу. Вам IDVsbruck намекал, что нужно всего лишь пролистать форум на несколько страниц (или поиском воспользоваться), и можно будет найти готовый ответ. Вы что-нибудь предприняли в этом направлении? Нет? пример с sql.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 17:04 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
illion yarnikСовершенно с вами согласен! поэтому ищу специалиста который смог бы исправить данную оЧепятку :-) думаю, Вы его не найдете. Судя по Вашим вопросам, код целиком надо за Вас писать, а кто ж захочет. Я вот не хочу. Жаль, очень жаль... Первый раз вижу человека который на форуме помагает, а платно скрипт отказывается писать... Может передумаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 17:20 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
yarnik Первый раз вижу человека который на форуме помагает, а платно скрипт отказывается писать... Может передумаете? я пас. Платно скрипты я пишу на работе. Дома я принципиально ничего не пишу. На этот форум я пишу хз почему (самый большой от него толк - это отвлечься от основной задачи и потом взяться за нее с новыми силами или с другого конца. :-) ). За остальных отвечать не могу, может и найдутся среди них фрилансеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 17:41 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
illion Отлично! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 18:00 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
По сабжу - XmlHttpRequest уже не юзаю (по причине отсутствия кроссдоменности). Использую вот это , чего программистам яваскрипт и рекомендую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2008, 21:53 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
ShSergeПо сабжу - XmlHttpRequest уже не юзаю (по причине отсутствия кроссдоменности). Использую вот это , чего программистам яваскрипт и рекомендую. Спасибо. Серж! Я конечно, знал за SCRIPT и IFRAME, но пребывал в наивной уверенности, что кросс-доменный JavaScript дает защиту полей документа от доступа. Хотя теперь понимаю, то это не может быть так. Если скрипт загружет - все под рукою. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 01:12 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
ShSergeПо сабжу - XmlHttpRequest уже не юзаю (по причине отсутствия кроссдоменности). Использую вот это , чего программистам яваскрипт и рекомендую. есть вопрос по поводу безопасности. Зачем было придумано "уникальный callback-id" если вот тут http://en.wikipedia.org/wiki/JSON написано, что где сервер отвечает только серверному скрипту "the URL replying to the request must reside within the same DNS domain as the server that hosts the page containing the request" (c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 12:36 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
yarnikЗачем было придумано "уникальный callback-id"... Это автор статьи чего-то намутил (я не использую "уникальный") yarnikесли вот тут http://en.wikipedia.org/wiki/JSON написано, что где сервер отвечает только серверному скрипту "the URL replying to the request must reside within the same DNS domain as the server that hosts the page containing the request" (c) А этот текс как-раз подразумевает XmlHttpRequest. Безопасность действительно под угрозой. Базу данных апдейтить JSONP не надо (хотя бы из тех соображений, что с клиента всё передаётся методом GET). А вот получать данные - можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 13:05 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
ShSergeЭто автор статьи чего-то намутил (я не использую "уникальный") Можно пример без использования уникального? я как ни пытаюсь его обрезать - отказывается работать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ShSerge yarnikесли вот тут http://en.wikipedia.org/wiki/JSON написано, что где сервер отвечает только серверному скрипту "the URL replying to the request must reside within the same DNS domain as the server that hosts the page containing the request" (c) А этот текс как-раз подразумевает XmlHttpRequest. Безопасность действительно под угрозой. Базу данных апдейтить JSONP не надо (хотя бы из тех соображений, что с клиента всё передаётся методом GET). А вот получать данные - можно. Почему подразумевает XmlHttpRequest? речь же идет о JSON Где безопасность под угорозой? JSON и JSONP это одно и тоже? Простите за вопросы новичка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 15:47 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. JSONP - механизм изменения данных на странице без перезагрузки и без использования реквеста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 16:23 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
а рабочий пример можно? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 18:02 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Честное слово - лень. Тем более, что ты не говоришь, чего на сервере используешь. На самом деле, и в указанной статье - примерчик, если всё как положено собрать - работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 20:23 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Собственно, по стартвопросу. При выборе страны (онченж первого селекта) - аппендЧилд скрипта с параметром ...чего_то_там?callbeck=...&strana="выбранная_страна". Коллбек функция - чистит второй селект и вставляет в него (аппендЧилд) данные из парамета коллбека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 21:30 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Всем кто следит за темой и за мной - спасибо! благодаря вашим стараниям и моим мучениям все же что то получилось "родить". Скажу чесно, тут плагиата на 50% только :-) Хочу услышать конструктивную критику, замечания, пожелания, наставления. И вопрос, у меня не получается загнать текст ни в <div id="sity1"> ни в <select id="sity2"> Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 23:00 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Ха-ха - здорово! Только не 50, а 85 процентов. Когда дорастёшь до 95-98% - будешь джедаем. Если хочешь, я в выходные тебе свой примерчик напишу для твоих данных - тебе понравится. Я так понял - на перле пишешь (ну это теперь всё-равно - понятно, как данные получаешь). Если дашь полную ссылку на свой list.pl - дам тебе хтмл-файл, который даже лёжа на рабочем столе будет точно также работать, как и загруженный с сервера (реквест так не умеет!). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 23:41 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
не трудно догадаться что скрипт выдает те6кстовку <option value=$1>$2</option> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 23:59 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
И еще немного изменений. Неужели тяжело сказать верно или нет? что подправить, а что оставить... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 01:05 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Ну, создание XMLHttpRequesr надо вынести в отдельную функцию, создавать при загрузке страницы и не создавать при каждом запросе, а пользоваться экземпляром объекта. Вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Практика с innerHTML крайне нежелательна (и непрофессилнальна). Создавай на сервере строку-объект JSON, передавай ее, с помощью eval создавай объект и DOM'ом вставляй в селект. Это наиболее быстрый, удачный, кроссбраузерный и профессиональный подход. Вариант с прерыванием запроса через setTimeout выглядит просто дилетантским. Во-первых, с сервера можно получить столько объектов, что за 5 секунд их не распарсить и не вставить. А во-вторых, если браузер в течении 5 секунд получил данные и начал их парсить и вставлять, то к функции setTimeout он подойдет только тогда, когда интерпретатор выйдет их процесса парсинга, а не точно через 5 секунд. Так что данное решение плохое. Думаю, проколы с данными надо координировать с сервера, устанавливая какие-то блоки и проверки. Вот что мне действительно понравилось в твоем коде - это расположение стран. Кул! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 01:25 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
IDVsbruckНу, создание XMLHttpRequesr надо вынести в отдельную функцию, создавать при загрузке страницы и не создавать при каждом запросе, а пользоваться экземпляром объекта. Начал искать что это за чудо и вот чего нашел: "Когда-то обращение к функции httpRequest() я делал сразу при загрузке страницы через <body onload="httpRequest()"> и больше не создавал XMLHttpRequest объект. Но как оказалось, это работает для всех браузеров кроме IE, который каждый раз требует создавать новый объект. Поэтому вызов данной функции делается каждый раз перед отправкой данных." (c). Источник http://www.ixbt.com/soft/ajax.shtml IDVsbruckВариант работать не будет, так как запрос асинхронный и для получения отклика нужен обработчик события onreadystatechange: Спасибо понял. IDVsbruckВот что мне действительно понравилось в твоем коде - это расположение стран. Кул! Как раз это и был плагиат :-)) Остальное еще перевариваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 13:40 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Если получать данные через JSONP никакого реквеста не надо - статью-то (давал тынц) можно было и прочитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 13:51 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
ShSerge, на сколько я вижу, уважаемые IDVsbruck и illion почему то не используют этот замечательный метод JSONP. С чем связано столь малая распространненость и не любовь в узких кругах сего метода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 14:39 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
yarnikShSerge, на сколько я вижу, уважаемые IDVsbruck и illion почему то не используют этот замечательный метод JSONP. С чем связано столь малая распространненость и не любовь в узких кругах сего метода? IDVsbruck и illion - это еще не пуп Земли, и Вы вольны использовать то, что считаете более подходящим своей цели :-). Я не использую JSONP, поскольку функции, основанные на XMLHttpRequest, полностью удовлетворяют моим задачам. Да и потом, я работаю только с методом POST, дабы избежать ограничений GET (мне порой приходится передавать на сервер достаточно сложные данные больших объемов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 15:52 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
То же самое ... Просто не заморачивался с другими способами, но способ JSON with Padding также имеет полное право на жизнь. В моих приложениях надежный источник данных, который я формирую на сервере, а также огромное количество запросов и ответов на/с сервера, поэтому добавлять еще и дополнительные обработчики - это уже занадто ... хотя, возможно, в следующий раз буду реализовывать уже именно такую конструкцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 20:58 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Я вот, что имел ввиду (JSONP здесь ни при чём). 1.perl (пардон, лет 5 не писал забыл синтаксис): Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:29 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
ПС. Текст явно попроще будет, чем с реквестом или с JSONом. Получать таким образом данные в данном конкретном случае - вполне допустимо. А вот базу апдейтить не следует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 11:33 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
ShSerge, Как все работает я уже понял, хотя думал что этот метод работает только с форматом JSON Но в любом случае, как мен кажется, этот метод не позволяет выводить на экран статус запроса. Допустим в начале запроса и возможно юзеру вывести сообщение "Идет загрузка" и если успешно все прошло убрать ее, но как быть с сообщеними о ошибках? p.s. Вы не задумывались о написании мануала в Викпедии? :-) p.p.s. Кстати, где можно почитать как парсить JSON? Что б быть точнее, как втиснуть результат между тегами <option value=$1>$2</option> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 15:25 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
yarnik p.p.s. Кстати, где можно почитать как парсить JSON? Что б быть точнее, как втиснуть результат между тегами <option value=$1>$2</option> Зачем его парсить? - это уже есть ассоциативный массив в жс. - точечная нотация ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 15:36 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
ShSerge yarnik p.p.s. Кстати, где можно почитать как парсить JSON? Что б быть точнее, как втиснуть результат между тегами <option value=$1>$2</option> Зачем его парсить? - это уже есть ассоциативный массив в жс. - точечная нотация ... К примеру я передаю с сервера: { "1": "Москва", "2": "Питер", "3": "Киев" } или { "sity": [ "1", "Москва", "2", "Питер", "3", "Киев" ] } Вот как мне с этого сделать строчку "<select name=sity><option value=1>Москва</option><option value=2>Питер</option><option value=3>Киев</option></select>"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 15:47 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
yarnik К примеру я передаю с сервера: { "1": "Москва", "2": "Питер", "3": "Киев" } Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 17:06 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
LINUXER resp[a] respObj[a] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 17:07 |
|
||
|
поля SELECT и AJAX
|
|||
|---|---|---|---|
|
#18+
Немножко воображения ... Передаешь: {"cities":[{"value":"1","name":"Kiev"},{"value":"2","name":"Warshawa"},{"value":"3","name":"Vienna"}]} При обработке переводишь в объект: Код: plaintext 1. 2. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 17:19 |
|
||
|
|

start [/forum/topic.php?all=1&fid=22&tid=1456371]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
3ms |
| others: | 223ms |
| total: | 526ms |

| 0 / 0 |
