PHP & Javascript

amorfis

я стараюсь
PHP & Javascript

Подскажите алгоритм реализации следующего действия с использование РНР и JavaScript, так как
я в JS чайник.

Есть два списка типа SELECT. Пользователь выбирает определенное значение в первом списке, а
во втором содержимое должно менятся в зависимости от того что мы выбрали в первом списке.

Просто я не могу понять как данные из JavaScript передать в РНР.
 

DiMA

php.spb.ru
Команда форума
Изначально задать содержимое списков нужно на PHP. JS это не касается.

А чтобы "во втором содержимое должно менятся в зависимости от того что мы выбрали в первом списке" - это вопрос по JS, который задай отдельно в соотвествующем форуме. PHP это не касается.
 

Yourick

Новичок
короче так:
из под пхп генеришь ява-скрипт массив строк, в каждой из которых прописан полностью хтмлем один из вариантов второго селекта.
затем, када на первом селекте чего-то щёлкнули, по онклику в скриптах подставляешь тот или иной хтмл из массива скажем в див, и получаем второй селект, зависящий от выбора в первом.

второй вариант:
изпод пхп генеришь сразу все варианты вторго списка, каждый из которых заключён в див. все дивы кроме дефольного в стилях прячешь. а по клику в первом списке открываешь тольоко нужный селект

а из ява скриптов передавать -- скажем по он клику в обработчике заполняешь выбранным значением хиденновое поле, а на сервере выгребаешь.
 

Frol

Новичок
Yourick
стоп машина.
зачем сразу HTML генерить?

если данных не много -- то храним на клиенте массив с вариантами и потом в зависимости от первого селекта, ставим елементы второму.
 

Yourick

Новичок
Frol
ну да, ты прав, так лучше:
Второй селект статичный хтмл, а из под скриптов только опшины ему менять, смотря по ситуации.

и всё же, если человек, как говорит, в скриптах не очень, то ему лучше второй из предложенных мною вариантов
 

Yourick

Новичок
Frol
совсем несложно, если нормально знаешь синтаксис явы ,
а если сталкивался только на уровне замены картинки по наведению, то мой вариант как раз по аналогии.

хотя ладно, фик с вами, пусть по твоему, мне не принципиально, проблема-то не у меня :)
 

amorfis

я стараюсь
Спасибо за ответы. Я разобрался со всем. Кстати, в моем случае надо использовать событие OnChange, а не OnClick. А насчет данных, то их много, но SQL можно сделать так чтобы их стало мало. ))

-~{}~ 03.07.05 02:52:

Правда есть небольшой косячок. Результат обработки события выводится как бы в другом окне, т.е. в окне ничего нет кроме результата работы обработчика, а надо чтобы при этом не ломался сценарий скрипта. Как тут быть?
 

amorfis

я стараюсь
<script language="JavaScript">
____________________function f1()
____________________{if (document.forms[0].elements[8].value=="Амкар")
______________________document.write("Амкар");
____________________else
______________________document.write("Алания");}


__________________</script>

<select name=Team onChange="f1()">
 

Yourick

Новичок
наворотил блин :)
жди 5 минут, щас наваяю самплик

-~{}~ 03.07.05 03:40:

http://www.strangest.ru/yourick/select.htm
 

amorfis

я стараюсь
Yourick
Твой пример у меня в Opera работает как надо, а на IE отказывается. У тебя также?
 

Yourick

Новичок
Глюк какой-то. щас нету времени исследовать. смотри ещё раз там другой вариант, работает и там и там
 

SelenIT

IT-лунатик :)
А если document.all.что-то заменить на document.getElementById('что-то'), как это принято в XXI веке, то будет работать и в Мозиллах :)
 

SelenIT

IT-лунатик :)
Вообще-то document.all - чисто "мелкомягкое" изобретение. Но в последних Firefox, похоже, его все-таки решили поддержать - возможно, из-за огромного количества таких вот любителей сокращать код назло общепринятым стандартам)
 

Yourick

Новичок
SelenIT
Нифига, я проверил. все тот же глюк:
когда по онченджю в селект пихается строка с опшинами, первый тег <option> в строке обрезается.
т.е. я пихаю:

"<option>Opt1 Mode3</option>..."
а реально туда попадает
"Opt1 Mode3</option>...."

пофигу писать ли
document.all.XX
document.all["XX"]
или document.getElementById("XX")

глюк от этого не меняется.
это только с селектом такое у IE, я раньше уже сталкивался.
 

SelenIT

IT-лунатик :)
Yourick
Этот глюк не связан со способом обращения к элементу. Скорее всего это связано с тем, как браузеры преобразуют innerHTML в свою объектную модель. Строго по стандарту, такие вещи делаются методами DOM (createElement, appendChild и т.п.)
 
Сверху