| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > sql и JavaScript |
| Автор: MacTep 15.10.2009, 14:54 |
| Доброго времени суток, друзья. У меня такая проблема: есть выпадающий список типов, скажем, товаров: 1) игрушки; 2) книги; 3) продукты питания. Оформлено это тегом <select></select> в обычной форме. Но данные в этот тег подставляются из базы данных посредством селекта, который добавляется к моему тегу в php-коде. Как теперь можно сделать так, чтобы в зависимости от выбранного пункта выпадающего списка под ним появилась расшифровка того, что есть в этой группе? То есть у меня в базе есть табличка, в которой привязываются типа товаров к самим товарам, соответственно все товары на определенной группе мы можем легко получить. Только вот как совместить JavaScript с sql я не пойму. Ведь JavaScript отыгрывается на клиенте, а запросы выполняются на серваке... Что здесь можно сделать? |
| Автор: bars80080 15.10.2009, 15:36 |
| можно написать реакцию на выбор пункта: <select onchange="reaction(this);"> дальше можно в обработчике реакции reaction(x) написать соответствующее поведение. вариантов тут может быть несколько: 1. перезагрузка страницы с get-параметром. в этом случае достаточно будет переписать php-скрипт, строящий этот селект и поясниловку под ним. при наличии get-параметра происходит дополнительный запрос в БД и вставляется характеристика 2. организовать в динамическом режиме. это уже надо читать ajax. отправляем запрос серверу на специальный скрипт с тем же get-параметром, он копается в базе и отдаёт нам полученный текст. далее мы его на страничке вставляем в нужное место |
| Автор: NLspieler 16.10.2009, 07:26 | ||||
Дело в том, что в JavaScript есть редирект.
|
| Автор: MacTep 16.10.2009, 08:34 | ||||
Дали вот такой еще пример: как реализация - нормально?
|
| Автор: bars80080 16.10.2009, 13:16 |
реализация может и нормальная, если есть функция ajax() |
| Автор: skyboy 16.10.2009, 14:07 |
третий вариант: сразу отдавать и список, и "пояснительный текст" клиенту, а в реакции по выбору пункта отображать тот или иной блок. вообще, любая реакция на действия пользователя может быть: а) сопровождаться перезагрузкой страницы(как бы переход по ссылке) достоинство: раз это полноценный адрес, то можно на него поставить закладку, отправить другу по аське и т.д. Плюс, этот адрес индексируется поисковиками. плюс - высокая актуальность, т.е. человек всегда получает последнюю версию данных. недостаток: при небольших изменениях мы передаем тонну траффика - информации из соседних блоков, которая не поменялась - лишняя нагрузка, лишний траффик. б) не сопровождается перезагрузкой страницы: общий недостаток - явный определенный адрес отсутствует, нельзя поставить закладку/скинуть ссылку, продвинуть в поисковике отдельную страницу тоже не получится - отдельной страницы нет. Варианты реализации: - либо ajax(запрос на сервер происходит незаметно для пользователя) достоинство: траффик минимален - запрашиваются/получаются только измененные блоки; актуальность высока - даже если человек страницу уже полгода держит открытой в браузере и не закрывает страницу, все равно - подгрузка блока с сервера достанет последнюю по времени информацию. недостаток: не индексируется поисковиками; javascript может не выполняться(мобильные браузеры, параноики) - и логика работать не будет; - либо заранее включать всю информацию в страницу и средствами javascript только производить отображение/скрытие достоинство: информация индексируется поисковиками, хотя страница все-таки одна; со страницей можно работать и в отсутствие интернета; можно предусмотреть вариант для браузера с отключенным javascript'ом - в таком случае со страницей сможет работать и клиент без javascript'a недостатки: объем страницы может получиться слишком большим; актуальность информации зависит от времени последнего обновления страницы - не обновляли страницу в браузере полгода - данные будут полугодичной давности. |