Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Хитрости и секреты создания сайтов


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Сергей Луконин
Статус: Студент
Рейтинг: 88
∙ повысить рейтинг >>
Товарищ Бородин
Статус: Профессионал
Рейтинг: 50
∙ повысить рейтинг >>
Shapoklak
Статус: Академик
Рейтинг: 15
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Интернет / Хитрости и секреты создания сайтов

Выпуск № 239
от 05.01.2009, 17:35

Администратор:Ерёмин А.А.
В рассылке:Подписчиков: 428, Экспертов: 30
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 156372: Здравствуйте. У меня следующий вопрос: Мне необходимо именно с использованием библиотеки JsHttpRequest (сайт http://dklab.ru/lib/JsHttpRequest) сделать следующее : есть 2-а списка select ,- 1-й список это марки авто. <select size=&...


Вопрос № 156.372
Здравствуйте.
У меня следующий вопрос:
Мне необходимо именно с использованием библиотеки JsHttpRequest (сайт http://dklab.ru/lib/JsHttpRequest)
сделать следующее :
есть 2-а списка select ,- 1-й список это марки авто.
<select size="1" id='car' name="car"> <option value='1'>ВАЗ</option ><option value='2'>Опель</option ><option value='1'>Тойта</option ></select >
второй список это модели авто. он пока не активный и установлен в положение "любая" <select size="1" id='model' name="model"><option value='1'>любая</option ></select>
при выборе какого либо значения из первого списка, например ВАЗ, - идёт обращение к базе данных(c использованием библиотеки JsHttpRequest ) и выбираются все модели ВАЗ и после получения ответа сервера второй список (который был не активным readonly)становится активны м и принимает вид <select size="1" id='model' name="model"> <option value='1'>любая</option ><option value='2'>Калина</option ><option value='3'>Приора</option ></select >
Всё это происходит без перезагрузки страницы.
Мне необходим код реализации этих действий с комментариями.
Спасибо.
p.s. Если Вам ,что либо не ясно в постановке задачи пожалуйста уточните у меня.
Отправлен: 31.12.2008, 17:19
Вопрос задал: Dima1967 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Товарищ Бородин
Здравствуйте, Dima1967!
Прежде всего давайте определимся с общей схемой работы такой связки (это будет полезно на тот случай, если что-то будет непонятно в моей реализации).
1) при выборе значения в 1-ом списке, мы посылаем соответствующее значение серверному скрипту.
2) Серверный скрипт обращается к базе данных и выбирает из таблицы моделей для соответствующей марки машины массив моделей со значением ее "родительской" марки, равным $_REQUEST['car']. Данный массив мы перекодируем в JSON, и возвращаем клиенту.
3) JSON - отличный формат для передачи данных от сервера клиенту, потому что не требуется каких-либо дополнительных действий по перекодировке полученных данных. Мы получаем готовый объект Javascript. В цикле for - in значения свойств этого объекта перебираются и вставляются во второй вываливающийся список.

Глава 1. Хранение данных.
Предполагаем, что данные о моделях машин хранятся в таблице car_models следующего вида

model_i d - идентификатор модели машины(первичный ключ таблицы, автоинкрементное поле)
car_id - идентификатор марки машины
model_name - имя модели

Как при этом хранятся данные о марках машин - не суть важно, главное, чтобы у такой таблицы был первичный автоинкрементный ключ. Если в таблице марок машин ВАЗ имеет номер 1, то в таблице моделей 2105, 2107, 2109 и т. д. имели car_id = 1.

Глава 2. Серверный скрипт.
require_once "JsHttpRequest.php";
$js = &new JsHttpRequest.php('windows.1251');
$query = sprintf("SELECT `model_id`, `model_name` FROM car_models WHERE `car_id` = '%s';", $_REQUEST['car']);
$result = mysql_query($query);
$rows = mysql_fetch_array($result);
global $_RESULT;
$_RESULT = $rows;

Глава 3. Клиентская часть.
В результате продолжительного тестирования и разбирательства с библиотекой JsHttpRequest получилось нечто следующее(в приложении).

С первого раза при переносе, ско рее всего, не заработает, но Вы должны убедиться перед запуском, что скрипты "видят" подключаемые библиотеки (JsHttpRequest.php и JsHttpRequest.js), что на серверный скрипт приходит какое-либо значение, что к базе данных Вы подключаетесь успешно.
Если вдруг что-то неясно, спрашивайте через личку, с удовольствием отвечу.
С уважением, Товарищ Бородин

Приложение:

Ответ отправил: Товарищ Бородин (статус: Профессионал)
Россия, Новосибирск
Тел.: +7-923-245-3366
ICQ: 346988855
----
Ответ отправлен: 31.12.2008, 19:47

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 240116 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное