|
|
|
| Как отследить выбор/смену значения в поле Select | |
|
|
|
|
|
|
|
для: Dimrix
(11.05.2005 в 13:12)
| | Отследить с помощью php?
Пусть есть форма с выпадающим списком
<form action="action.php" method="post">
<select name="name">
<option value="val1"> value 1</option>
<option value="val2"> value 2</option>
<option value="val3"> value 3</option>
</select>
<input type="submit" value="Отправить">
</form>
|
По нажатию на кнопку "Отправить" данные формы пересылаются скрипту-обработчику action.php. В нем и проверяем: какой элемент списка выбран.
<?
echo $_POST["name"];
?>
|
Это выведет имя выбранного элемента (val1 или val2 или val3) | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(12.05.2005 в 05:30)
| | Я чуть не ясно сказал задачу: мне нужно отследить смену селекта без кнопочсек и прочих вещей. С кнопкой то просто, а вот пользователь делает выбор и пошла работа в соответствии с его выбором. Такое исполнение я видел на не одном сайте, а вот код какой? | |
|
|
|
|
|
|
|
для: Dimrix
(12.05.2005 в 11:10)
| | Тогда нужно применить JavaScript для автоматической отправки формы.
По событию изменения выбранного элемента onchange выполняется this.form.submit()
<form action="action.php" method="post">
<select name="name" onchange="this.form.submit();">
<option value="val1"> value 1</option>
<option value="val2"> value 2</option>
<option value="val3"> value 3</option>
</select>
</form>
|
По ссылке сходная тема.
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=3645&page=1 | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(12.05.2005 в 11:55)
| | Спасибо, прочитал, но не нашёл главного ответа: как мне передать параметр в перезагружаемую страницу? Например в селекте есть значения "1", "2" и "3". Как передать выбраную цифру? | |
|
|
|
|
|
|
|
для: Dimrix
(12.05.2005 в 20:30)
| | > как мне передать параметр в перезагружаемую страницу?
Тогда не ясен главный вопрос: куда нужно передать параметр? Т.е. " перезагружаемая страница" - это НЕ скрипт-обработчик формы action.php? Тогда что это за страница?
Опишите последовательность: что должно происходить, а ты мы, видимо, говорим про разные вещи. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(13.05.2005 в 05:13)
| | Ну не посредственно задача такова: окно разбито на фреймы с "целями"(target=...) Так вот в челекте я вывожу список ников, при выборе ника(смене) другой фрейм должен загрузить характеристики выбранного ника. Выборку я сам сделаю из базы, просто хотелось бы по смене сразу запускать обновление нужного фрейма... | |
|
|
|
|
|
|
|
для: Dimrix
(13.05.2005 в 21:26)
| | Т.е. нужно передать выбранные параметры скрипту, который находится во фрейме? Для этого в описании формы укажите параметр target=nameframe. Nameframe – имя фрейма, которому нужно передать данные. action.php – имя скрипта-обработчика.
<form action="action.php" method="post" target=nameframe>
<select name="name" onchange="this.form.submit();">
<option value="val1"> value 1</option>
<option value="val2"> value 2</option>
<option value="val3"> value 3</option>
</select>
</form>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.05.2005 в 04:14)
| | ну а параметр где передавать будем? ведь что бы передать, нам
не подходит...(хотя могу что то не допонимать) нужно что то вроде
а у же в вызываемом файле настроить обработку $_POST['value']. Вопрос мой в том, как передать выбранную величину.... | |
|
|
|
|
|
|
|
для: Dimrix
(14.05.2005 в 10:18)
| | >ну а параметр где передавать будем? ведь что бы передать, нам
Параметр передается автоматически методом POST.
Просмотрите еще раз самый первый мой ответ вам.
<?
echo $_POST["name"];
?>
|
Этот код нужно вставить в action.php. Он выведет значение элемента формы.
>нужно что то вроде action.php?func=value
Да, так тоже можно передавать. Это метод GET (через строку браузера). А есть еще метод POST. Он определяется в описании формы method="post". Для форм удобно пользоваться методом POST, т.к. это не "загрязняет" адресную строку браузера и позволяет обойти ограничения на длину передаваемых данных по методу GET. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.05.2005 в 11:32)
| | Вообще запутался. В прикреплённом файле код полностью код. Дело в том, что только в таком варианте он работает(случайно нашёл). Если я убираю одну из <Form> или меняю значение одного из name на другое(отличное от значения другого <form name>) - пишет ошибку, мол объет не найден... Можете подсказать, в чём ошибка? Два раза писать почти одно и тоже (всмысле <form>) мне не жалко, но код засоряется, да и лишний баг может получится... | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(12.05.2005 в 05:30)
| | если я тебя правильно понял...то тебе просто позарез нужен switch!
к примеру....твоя форма послала значение "юзер", то в скрипте обработчике должно быть вот как:
switch($_POST['name']){
case "юзер":case user();break;
case "админ": case admin();break;
default : main()
}
и посмотри синтаксис языка....я просто на 100% не уверен что все правильно написал! Хотя от меня просили идею а не ее реализацию!!!! | |
|
|
|
|
|
|
|
для: KR0k
(16.05.2005 в 15:50)
| | Ну вопрос как обработать у меня не подымался, поднимался вопрос как передать данные. На что, спасибо, дали совет ;-) А по поводу бага в коде, то я нашёл: забыз закрыть предидущую открытую форму(</form>) вот и глюк был: разобрался сам. Но всё равно всем спасибо за помощь и советы! | |
|
|
|
|
|
|
|
для: Dimrix
(16.05.2005 в 17:39)
| | Т.е. помощь больше не нужна? Вопрос решен? | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(17.05.2005 в 04:05)
| | Помощь нужна, только в других вопросах... они назреют, а в этом всё ок - спасибо! ;-) | |
|
|
|
|
|
|
|
для: Dimrix
(11.05.2005 в 13:12)
| | Появился ещё один подобный вопрос. Допустим у меня есть Select с полями: 1,2 и 3. Так вот если выбираю 1-2, то ничего не должно происходить, а вот если 3 - то должен становится видимым Input. МОжете подсказать как это сделать. Хотя нутром чую что это скорее всего явой... или можно пхп? | |
|
|
|