Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sql и JavaScript, не пойму принципа 
:(
    Опции темы
MacTep
Дата 15.10.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Доброго времени суток, друзья.

У меня такая проблема: есть выпадающий список типов, скажем, товаров:
1) игрушки;
2) книги;
3) продукты питания.

Оформлено это тегом <select></select> в обычной форме. Но данные в этот тег подставляются из базы данных посредством селекта, который добавляется к моему тегу в php-коде.

Как теперь можно сделать так, чтобы в зависимости от выбранного пункта выпадающего списка под ним появилась расшифровка того, что есть в этой группе? То есть у меня в базе есть табличка, в которой привязываются типа товаров к самим товарам, соответственно все товары на определенной группе мы можем легко получить. Только вот как совместить JavaScript с sql я не пойму. Ведь JavaScript отыгрывается на клиенте, а запросы выполняются на серваке...

Что здесь можно сделать?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
bars80080
Дата 15.10.2009, 15:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



можно написать реакцию на выбор пункта:

<select onchange="reaction(this);">

дальше можно в обработчике реакции reaction(x) написать соответствующее поведение. вариантов тут может быть несколько:

1. перезагрузка страницы с get-параметром. в этом случае достаточно будет переписать php-скрипт, строящий этот селект и поясниловку под ним. при наличии get-параметра происходит дополнительный запрос в БД и вставляется характеристика
2. организовать в динамическом режиме. это уже надо читать ajax. отправляем запрос серверу на специальный скрипт с тем же get-параметром, он копается в базе и отдаёт нам полученный текст. далее мы его на страничке вставляем в нужное место
PM MAIL WWW   Вверх
MacTep
Дата 16.10.2009, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Цитата(bars80080 @  15.10.2009,  15:36 Найти цитируемый пост)
1. перезагрузка страницы с get-параметром. в этом случае достаточно будет переписать php-скрипт, строящий этот селект и поясниловку под ним. при наличии get-параметра происходит дополнительный запрос в БД и вставляется характеристика

Можно вот этот способ подробнее расписать? Каким образом JavaScript реакция может помочь? Что она должна делать? Она просто выставляет get-параметр? Или как? Слегка недопонимаю ситуацию. Объясните, пожалуйста.


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
NLspieler
Дата 16.10.2009, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(MacTep @  16.10.2009,  06:55 Найти цитируемый пост)
Можно вот этот способ подробнее расписать? Каким образом JavaScript реакция может помочь? Что она должна делать? Она просто выставляет get-параметр? Или как? Слегка недопонимаю ситуацию. Объясните, пожалуйста.


Дело в том, что в JavaScript есть редирект.

Код

//Адрес скрипта: "http://someplace.com/index.php" ;

//К этому адресу можно добавить дополнительную информацию, которая будет передаватся скрипту.

kat = "Igrushki" ;
window.location = "http://someplace.com/index.php?kategoriya=" + kat  ; //Переход на страницу


//Гет информация будет доступна скрипту в массиве $_GET


PM MAIL   Вверх
MacTep
Дата 16.10.2009, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

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



Дали вот такой еще пример: как реализация - нормально?

Код

<?php

if (isset($_GET['country_id'])) {
 $opts = '';
 $cities = array( 1 => 'Moskow', 2 => 'Omsk');
 foreach( $cities as $k => $v)
   $opts .= '<option value="'.$k.'">'.$v.'</option>';
 die( $opts );
}

?>


Код

<select name="country_id" onchange="ajax('?country_id=' + this.value, 'city_id');">.....</select><br/>
<select name="city_id" id="city_id"></select>



--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
bars80080
Дата 16.10.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(MacTep @  16.10.2009,  08:34 Найти цитируемый пост)
как реализация - нормально?

реализация может и нормальная, если есть функция ajax()




PM MAIL WWW   Вверх
skyboy
Дата 16.10.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(bars80080 @  15.10.2009,  14:36 Найти цитируемый пост)
вариантов тут может быть несколько:

третий вариант: сразу отдавать и список, и "пояснительный текст" клиенту, а в реакции по выбору пункта отображать тот или иной блок.

вообще, любая реакция на действия пользователя может быть:
а) сопровождаться перезагрузкой страницы(как бы переход по ссылке)
достоинство: раз это полноценный адрес, то можно на него поставить закладку, отправить другу по аське и т.д. Плюс, этот адрес индексируется поисковиками. плюс - высокая актуальность, т.е. человек всегда получает последнюю версию данных.
недостаток: при небольших изменениях мы передаем тонну траффика - информации из соседних блоков, которая не поменялась - лишняя нагрузка, лишний траффик.
б) не сопровождается перезагрузкой страницы:
общий недостаток - явный определенный адрес отсутствует, нельзя поставить закладку/скинуть ссылку, продвинуть в поисковике отдельную страницу тоже не получится - отдельной страницы нет.
Варианты реализации:
- либо ajax(запрос на сервер происходит незаметно для пользователя)
  достоинство: траффик минимален - запрашиваются/получаются только измененные блоки; актуальность высока - даже если человек страницу уже полгода держит открытой в браузере и не закрывает страницу, все равно - подгрузка блока с сервера достанет последнюю по времени информацию.
 недостаток: не индексируется поисковиками; javascript может не выполняться(мобильные браузеры, параноики) - и логика работать не будет;
- либо заранее включать всю информацию в страницу и средствами javascript только производить отображение/скрытие
 достоинство: информация индексируется поисковиками, хотя страница все-таки одна; со страницей можно работать и в отсутствие интернета; можно предусмотреть вариант для браузера с отключенным javascript'ом - в таком случае со страницей сможет работать и клиент без javascript'a
 недостатки: объем страницы может получиться слишком большим; актуальность информации зависит от времени последнего обновления страницы - не обновляли страницу в браузере полгода - данные будут полугодичной давности.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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