Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Рhp и javascript (https://javascript.ru/forum/server/8234-rhp-i-javascript.html)

faiq 16.03.2010 00:26

Рhp и javascript
 
Добрый вечер.
Тут у меня такое дело :html код отображает выпадающий список,вида:
<SELECT name="country" id="country">
<OPTION value="Albania"> Албания</OPTION>
 <OPTION value="Algeria">Алжир
</OPTION>...

В последствии $country обрабатывается в php,тут проблем нет.Мне нужно чтобы после нажатия на submit и выполнения сценария,страна,которая была выбрана до,оставалась и после выбранной.
Единственное что приходит в голову это создать ассоциативный массив вида:
$a=array("Albania"=>0,"Algeria"=>1...);
Затем выводить
через
echo"<SCRIPT LANGUAGE='Javascript'>	
document.newforms.valyuta.options[<? $a[$country] ?>].selected = true;
</SCRIPT>";

Просто стран около двухсот,и нагромождать код ассоциативным массивом не очень хочется,есть вообще какой-та другой способ,более рациональный,чтобы в php передать как-то индекс выпадающие списка,а не только название страны?

Octane 16.03.2010 00:33

А почему не добавить нужному option атрибут selected="selected" на сервере?

faiq 16.03.2010 00:48

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

Octane 16.03.2010 00:56

Вы же предложили решение:
Цитата:

Сообщение от faiq
Единственное что приходит в голову это создать ассоциативный массив вида:$a=array("Albania"=>0,"Algeria"=>1...);З атем выводить
через echo"<SCRIPT LANGUAGE='Javascript'>
document.newforms.valyuta.options[<? $a[$country] ?>].selected = true;
</SCRIPT>";

значит на сервере знаете, какой option выбран, соответственно очередной раз генерируя select нужно поставить атрибут selected. Или опишите подробнее вашу проблему, пока не понятно, зачем тут JS.

faiq 16.03.2010 01:17

Скажем так у меня скрипт имеет следующий вид сначала идёт html код,который отображает элементы формы,выпадающие списки,текстовое поле,submit и т.д.Т.к. по замыслу они все время должны находиться на странице и до нажатия на кнопку и после,то я не стал их выводить через php.Php часть кода начинается позже,в зависимости от того как будут заполнены поля,php у меня обрабатывает введенные данные и выдаёт соответствующий результат.Просто после нажатию на кнопку хотелось бы сохранять данные ,которые он ввёл или выбрал на форме.Поэтому я использую js,грубо говоря,'передаю' данные из php в js.

subzey 16.03.2010 01:52

faiq,
когда пользователь отправляет форму на сайт, он передает данные серверу, в том числе и id выбранного языка. Все, что Вам нужно — засунуть эти данные в сессию и, как сказал Octane, при выводе списка стран у нужной задать selected="selected".
Тут, действительно, яваскрипту делать нечего.

faiq 19.03.2010 02:43

Всем спасибо за помощь.


Часовой пояс GMT +3, время: 00:15.