Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение элемента <select>, использующего Ajax, Через сокеты. Помогите с алгоритмом. 
:(
    Опции темы
Hinikato
Дата 7.3.2007, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 18.2.2007

Репутация: нет
Всего: нет



Здравствуйте! У меня возникла следующая проблема.

Есть автомобильный сайт с формой (тег <form>) для поиска автомобиля. В этой форме можно задавать массу разных параметров, но мне нужны только некоторые из них, среди которых марка автомобиля и модель. Мой PHP-скрипт соединяется через сокеты с этим сайтом и должен выполнить поиск, подставив свои параметры (марку и модель) в те, что на есть на сайте, после чего вернуть результат.

Проблема в том, что после выбора из списка марки, скрипт сайта через Ajax делает запрос к БД для выборки моделей соответствующих этой марке с помощью события onChange:
Код

Марка <select name="marka" onChange=SelModel();>
<option value="1">все</option>
<option value="2">AC</option>
<option value="120">Acura</option>
<option value="121">Aeolus </option>
...
<option value="98">УАЗ</option>
<option value="0">Другие</option>

Как видно, здесь после value=" подставляется id марки машины из БД, по которому определяются модели, которые и вставляются в другой <select> (в самом начале список моделей состоит только из одного элемента). Например, если я выбрал в первом списке Subaru, во втором появятся такие модели:
Код

<select name="m" id="_model_list">
<option value="0" selected="selected">Любая модель</option>
<option value="1429">Bistro</option>
<option value="1430">Dias Wagon</option>
...
<option value="1434">Forester</option>
<option value="1435">Impreza</option>


Так вот, как моему скрипту сделать тоже самое? У него же нет этой базы... Как выполнить поиск, если в качестве моих параметров (которые подставятся) можно задавать только марки и модели полностью. Например, марка Acura, модель Integra. А таких сайтов может быть несколько и тоже используется Ajax. Понятно, что везде разные id и поэтому нет возможности сделать универсальный массив для всех сайтов.

Я вижу единственный вариант, это для каждого сайта, отдельно посылать запросы с id марки и записывать куда-нибудь все модели. 

И так для каждой марки... Геморрой! Должно быть какое-то более универсальное решение...

Это сообщение отредактировал(а) Hinikato - 7.3.2007, 11:50
PM MAIL   Вверх
mishaSL
Дата 7.3.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(Hinikato @  7.3.2007,  11:48 Найти цитируемый пост)
Я вижу единственный вариант, это для каждого сайта, отдельно посылать запросы с id марки и записывать куда-нибудь все модели. 


Это был бы самый надежный вариант.

Как вариант могу предложить следующий алгоритм:
1. Берешь ссылки на JS файлы отвечающие за действие SelModel()
2. Создаешь файл (для примера 1.php) в котором будет JS функция (либо Ajax) возвращающая значения select-a с id="_model_list" в удобном для тебя виде и соответственно select с id="_model_list".
3. Своим скриптом обращаешься в файлу 1.php, где должна автоматически выполняться функция SelModel() с необходимым тебе id марки авто, который не сложно получить. С помощью функции созданой в пункте №2 получаешь список моделей авто и находишь нужный id модели.
4. Зная id-ники модели авто и марки делаешь запрос к этому сайту и  получаешь все что тебе необходимо smile 

Это сообщение отредактировал(а) mishaSL - 7.3.2007, 18:20


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Hinikato
Дата 7.3.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 18.2.2007

Репутация: нет
Всего: нет



Цитата(mishaSL @  7.3.2007,  18:19 Найти цитируемый пост)
2. Создаешь файл (для примера 1.php) в котором будет JS функция (либо Ajax) возвращающая значения select-a с id="_model_list" в удобном для тебя виде и соответственно select с id="_model_list".


Т. е. ты предлагаешь перенести весь frontend на свой комп? Сервер же вернет результат не мне?

PM MAIL   Вверх
mishaSL
Дата 9.3.2007, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(Hinikato @  7.3.2007,  19:55 Найти цитируемый пост)
Сервер же вернет результат не мне?


А кому?

Дай ссылки на JS файлы. Покажу пример.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.