Не могу вернуть значения SELECT

darksmoke

Новичок
Не могу вернуть значения SELECT

Представим ситуацию:
Человек заполняет форму, и забывает (не заполняет) какое-то из обязательных полей. В следствии ему говорится что он забыл заполнить поле и снова выдает ему форму с его, уже набранными, значениями.

Мучаюсь, не как не получается вернуть значения SELECT.
Подскажите плз.
 

darksmoke

Новичок
function frazdel() {
$razdel = array ("a","b","c");
echo "<select name=\"razdel\" size=\"1\">";
foreach ($razdel as $key=>$value)
echo "<option value=\"$key\">$value</option>";
echo "</select>";
}

А как вернуть не знаю.. вообще не как не получается
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
А как вернуть не знаю.. вообще не как не получается
Что означает "вернуть"?
Проставить дроп-дауну SELECTED?
Дык.
Ну так сверяй в цикле
$key и $_POST['razdel']
 

darksmoke

Новичок
означает, что человек выбрал какое-то значение SELECT, потом когда человек ошибся, выводим снова форму с выбранным SELECT'ом.

Т.е. человек выбрал в SELECT'е значение с. Ошибся - вернули ему форму. В форме уже выбрано значение с.

-~{}~ 30.03.08 16:10:

Чет я не могу понять как это сделать... .
 

darksmoke

Новичок
http://phpclub.ru/talk/showthread.p...3521&rand=0
тут нет примера с SELECT'ом

Ну так сверяй в цикле
$key и $_POST['razdel']
Не понимаю как это реализовать... . Чтобы значение переданное сразу становилось по дефаулту и при этом сохранялся весь выбор SELECT'а

Помогите новичку.. маленьким куском кода.
 

Фанат

oncle terrible
Команда форума
darksmoke
тыой вопрос следует разделить на две части.
1. Знаешь ли ты, как в HTML в селекте "выставляется значение по дефаулту"? Если не знаешь - посмотри в любом онлайн справочнике.
2. Как написать такую команду на пхп. Ответ:
сверяй в цикле
$key и $_POST['razdel']
 

darksmoke

Новичок
Это я знаю!

-~{}~ 30.03.08 19:43:

Как это реализовать, когда у меня есть массив?!
function frazdel() {
$razdel = array ("a","b","c");
echo "<select name=\"razdel\" size=\"1\">";
foreach ($razdel as $key=>$value)
echo "<option value=\"$key\">$value</option>";
echo "</select>";
}
Одно из значений я передаю POST'ом

-~{}~ 30.03.08 19:45:

как же выбрать selected, если у меня весь select находится в массиве. И вывожу через перебор массива.
Как мне одному значению задать значение selected?
 

Фанат

oncle terrible
Команда форума
тебе нужна переменная.
которая все время пустая, а когда значения совпадают, содержит слово селектед.

а переменную ты вставить в строку можешь ведь?
 

darksmoke

Новичок
*****
Спасибо... . это уже проще реализовать... . Сейчас буду пробовать!

-~{}~ 30.03.08 21:56:

все равно не получается... . с учетом как я вывожу селект (
 

Фанат

oncle terrible
Команда форума
ты ж выводишь, как надо.
внутр цикла надо вставить условие с проверкой.
если равно - переменная равна селектед, если не равно - пустая
 

darksmoke

Новичок
function frazdel() {
$razdel = array ("a","b","c");
echo "<select name=\"razdel\" size=\"1\">";
foreach ($razdel as $key=>$value)
if (isset($_POST['razdel'])) {
if ($key == $_POST['razdel']) $selected="selected";
} else {
echo "<option value=\"$key\" selected=\"$selected\">$value</option>";
echo "</select>";
}
}

Наверное это для меня сильно сложная задача!
я это так представляю, но выводит только первое значение в SELECT'е, а потом просто текстом все остальное рядом. ((
 

Beavis

Banned
напиши несколько вариантов чистого HTML для разных случаев значения $_POST['razdel']
после этого попытайся уловить что в этих случаях одинаково а что различается

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

Фанат

oncle terrible
Команда форума
darksmoke
ты немного напутал со скобками.
if (isset($_POST['razdel']) AND $key == $_POST['razdel']) {
$selected="selected";
} else {
$selected="";
}
echo "<option value=\"$key\" selected=\"$selected\">$value</option>";
}

а echo "</select>"; вообще надо вынести за цикл
 

darksmoke

Новичок
.

-~{}~ 30.03.08 23:19:

Я извиняюсь.
Но в этом случаи, как и в моем, выводит только последний элемент массива. Больше выбора в SELECT'е нет. (только последний элемент, т.е. одно значение)
 
Сверху