|
|
|
| Всем привет!
Пример
<select name="region" onchange="document.form.submit();">
<option value="">Выбрать регион</option>
<option value="1">Первый регион</option>
<option value="2">Второй регион</option>
<option value="3">Третий регион</option>
</option>
|
Если я выбираю какой то регион в адресной строке все нормально и она придает вида
Выбрал Первый регион
А если выбираю Выбрать регион, то в адресной строке получается
Возможно ли как то сделать что бы region= не выводился?
Заранее спасибо | |
|
|
|
|
|
|
|
для: mister_pipin
(19.07.2012 в 08:52)
| | Извините за беспокойство, решил
if(!isset($region)){
<select name="region" onchange="document.form.submit();">
}
else{
<select name="" onchange="document.form.submit();">
}
<option value="">Выбрать регион</option>
<option value="1">Первый регион</option>
<option value="2">Второй регион</option>
<option value="3">Третий регион</option>
</option>
|
| |
|
|
|
|
|
|
|
для: mister_pipin
(19.07.2012 в 08:57)
| | Разве это решение, это ужас!
<select name="region" onchange="if(this.value) this.form.submit()">
<option value="" >Выбрать регион</option>
<option value="1">Первый регион</option>
<option value="2">Второй регион</option>
<option value="3">Третий регион</option>
|
| |
|
|
|
|
|
|
|
для: confirm
(19.07.2012 в 09:01)
| | Спасибо | |
|
|
|
|
|
|
|
для: confirm
(19.07.2012 в 09:01)
| | Но ведь так не получается как я хотел, что бы переменная GET не показывалась в виде ®ion=, в примере вашего кода при выборе любого региона он правильно работает и выводит нужный регион, но если после выбранного региона выбрать "Выбрать регион" то ничего не происходит | |
|
|
|
|
|
|
|
для: mister_pipin
(19.07.2012 в 19:14)
| | Вот код по которому я проверял
<?php
$arr = array('1'=>'Первый регион', '2'=>'Второй регион', '3'=>'Третий регион');
$region = $_GET['region'];
?>
<form method="get" name="form" action="./del.php">
<select name="region" onchange="if(this.value) this.form.submit();">
<option value="" >Выбрать регион</option>
<?php
foreach($arr as $key => $value){
if($region == $key){
echo '<option value='.$key.' selected>'.$value.'</option>';
}
else{
echo '<option value='.$key.'>'.$value.'</option>';
}
}
?>
</select>
</form>
|
| |
|
|
|
|
|
|
|
для: mister_pipin
(19.07.2012 в 19:26)
| | Вы вообще соображаете, какую хрень сморозили ранее?
Вам что вообще надо? Если вам нужно получать и пустое значение, значит отправляйте форму без условий. Если при этом вам страшно, что ключ region в адресной строке не имеет значение, отправляйте методом POST.
А это, что вы привели к проверке отношения не имеет никакого, это просто вывод списка с отметкой выбора пользователя. И пишут подобное так:
<?
foreach($arr as $key => $value) echo '<option value='.$key.($region == $key ? ' selected' : '').'>'.$value.'</option>';
|
| |
|
|
|
|
|
|
|
для: confirm
(19.07.2012 в 22:24)
| | я написал тоже самое, только не в такой сокращенной форме. POST запрос тут не нужен, он будет лишний, нужен GET. | |
|
|
|
|
|
|
|
для: mister_pipin
(19.07.2012 в 23:30)
| | Вы пишите лишнее.
Большая разница каким методом передать форму?
Передавайте GET, если это так важно для вас.
Запомните, элементы формы не имеющие имени на сервер не передаются, то есть то, что вы пытались вернуть назад без имени, вам вообще ничего не передаст.
Если вы хотите, чтобы после первого выбора пользователя он уже не мог выбрать опцию "Выберите...", то при возврате формы не выводите эту опцию списка. | |
|
|
|
|
|
|
|
для: confirm
(19.07.2012 в 23:37)
| | Данная форма нужна только для того что бы передать параметр ГЕТ в командную строку(благодаря этому сервер обработает данный параметр как нужно). Но если же пользователь меняет значение и в конечном итоге выбирает "Самое первое" код должен приобрести исходное состояние. Поэтому спрашиваю у Вас совет | |
|
|
|
|
|
|
|
для: mister_pipin
(19.07.2012 в 23:53)
| | Что значит исходное состояние? Если это выбранная опция "Выбрать...", то чего тогда вы боретесь с пустым значением параметра?
Я не хочу решать ваших загадок "передать в командную строку...", нет у браузера командной строки, есть адресная. Напишите просто словами чего вам надо в зависимости от условий, а то по вашим действиям в коде не понять, то вы боретесь с параметром, то он вам нужен... | |
|
|
|
|
|
|
|
для: confirm
(20.07.2012 в 00:01)
| | Когда страница открывается по умолчанию адрес сайта имеет вид
после того как выбираю регион, адресная строка принимает вид исходя из выбранного региона
http://site/?region=1
http::/site/?region=2
|
и так дальше.
но когда я выбираю "Выбрать регион" (вот оно исходное состояние), адресная строка должна принять вид первоначальный
Реально ли сделать подобное?
Заранее спасибо | |
|
|
|
|
|
|
|
для: mister_pipin
(20.07.2012 в 00:50)
| | Если ваш список ради этого, типа навигатора, то зачем вообще форма и ее отправка? Пропишите в качестве значений опций нужные url и меняйте адрес объекта location:
<select onchange="location.href = this.value">
<option value="http://site/">Выберите...</option>
<option value="http://site/?region=1">Регион 1</option>
<option value="http://site/?region=2">Регион 2</option>
<option value="http://site/?region=3">Регион 3</option>
</select>
|
| |
|
|
|
|
|
|
|
для: confirm
(20.07.2012 в 02:57)
| | А это идея, спасибо, попробую | |
|
|
|