Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выбор елемента в списке
Форумы портала PHP.SU » PHP » Программирование на PHP » Выбор елемента в списке

Страниц (1): [1]
 

1. Dekker8 - 23 Мая, 2009 - 22:04:13 - перейти к сообщению
Есть список:

echo "<select name=prinat_sotr id=prinat_sotr>";
echo "<option value=Яворский>Сидоров</option>";
echo "<option value=Иванов>Иванов</option>";
echo "<option value=Петров>Петров</option>";
echo "</select>";

как сделать чтобы при выводе его выводилось выбрано было значение скажем 'Иванов' или 'Петров' то есть поставить типа как по дефолту если можно так сказать Улыбка))
2. vitaliy_mad - 23 Мая, 2009 - 22:29:27 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo "<select name=prinat_sotr id=prinat_sotr>";
  3. echo "<option value=Яворский".(($_POST['prinat_sotr']=='Яворский')?" selected":"").">Сидоров</option>";
  4. echo "<option value=Иванов".(($_POST['prinat_sotr']=='Иванов')?" selected":"").">Иванов</option>";
  5. echo "<option value=Петров".(($_POST['prinat_sotr']=='Петров')?" selected":"").">Петров</option>";
  6. echo "</select>";
  7. ?>
  8.  

или $_GET вместо $_POST... смотря как данные отправляются
3. EuGen - 23 Мая, 2009 - 22:50:23 - перейти к сообщению
Так то оно так, но лучше через массив и циклом выводить (у нас ведь может быть много элементов)
4. vitaliy_mad - 23 Мая, 2009 - 22:52:20 - перейти к сообщению
EuGen пишет:
Так то оно так, но лучше через массив и циклом выводить (у нас ведь может быть много элементов)

ага, массив однозначно... в любрм случае принцип тот же.... а сюдя по куску кода ему и нужен был принцип...
5. Dekker8 - 24 Мая, 2009 - 08:26:55 - перейти к сообщению
У меня всего 3 елемента должно быть в списке(3 фамилии). А что нету ли каккого нить параметра типа default selected.

Вообще решил таким способом без массивов(но удобно токо када мало елементов в списке):

PHP:
скопировать код в буфер обмена
  1. if($prinat_v_remont_sotr == 'Яворский'){
  2. echo "<select name=prinat_sotr id=prinat_sotr>";
  3. echo "<option value=Яворский>Яворский</option>";
  4. echo "<option value=Иванов>Иванов</option>";
  5. echo "<option value=Петров>Петров</option>";
  6. echo "</select>";}
  7.  
  8. if($prinat_v_remont_sotr == 'Иванов'){
  9. echo "<select name=prinat_sotr id=prinat_sotr>";
  10. echo "<option value=Иванов>Иванов</option>";
  11. echo "<option value=Яворский>Яворский</option>";
  12. echo "<option value=Петров>Петров</option>";
  13. echo "</select>";}
  14.  
  15. if($prinat_v_remont_sotr == 'Петров'){
  16. echo "<select name=prinat_sotr id=prinat_sotr>";
  17. echo "<option value=Петров>Петров</option>";
  18. echo "<option value=Иванов>Иванов</option>";
  19. echo "<option value=Яворский>Яворский</option>";
  20. echo "</select>";}
  21.  
  22. echo "</label>";
  23. echo "статус:";
  24. echo "<label>";
  25.  

мне надо еще шоб по нажатии кнопки передавалось значение(value) в базу данных. так как я написал работает все норм но вроде немного громоздкой код Недовольство, огорчение
6. valenok - 24 Мая, 2009 - 11:40:43 - перейти к сообщению
Default selected это вот так:

echo "<select name=prinat_sotr id=prinat_sotr>";
echo "<option value=Яворский selected='selected'>Сидоров</option>";
echo "<option value=Иванов>Иванов</option>";
echo "<option value=Петров>Петров</option>";
echo "</select>";
7. Ch_chov - 24 Мая, 2009 - 11:41:52 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $sel = <<< FLAG
  2. <select name="prinat_sotr" id="prinat_sotr">
  3. <option value="Яворский">Яворский</option>
  4. <option value="Иванов">Иванов</option>
  5. <option value="Петров">Петров</option>
  6. </select>
  7. FLAG;
  8.  
  9. echo str_replace('value="'.$prinat_v_remont_sotr.'"', 'value="'.$prinat_v_remont_sotr.'" selected="selected"', $sel);
8. Гость - 24 Мая, 2009 - 11:45:01 - перейти к сообщению
Dekker8 Вообще если список хоть с одним выбором хоть multiple просто нужно добавить слово selected - а так если не добавлено то как было уже верно сказано что первое в списке стоит то и покажется выделенным
9. Ch_chov - 24 Мая, 2009 - 11:52:29 - перейти к сообщению
Цитата:
просто нужно добавить слово selected

В XHTML документах уже нельзя так делать, валидатор ругатся будет.
10. IOpeH - 24 Мая, 2009 - 14:03:26 - перейти к сообщению
Ch_chov может потому что надо selected="selected" делать? ...
11. Ch_chov - 24 Мая, 2009 - 15:53:29 - перейти к сообщению
Я про это и говорю.
В XHTML нельзя использовать короткие атрибуты.
http://www[dot]w3[dot]org/TR/xhtml1/#h-4[dot]5

 

Powered by ExBB FM 1.0 RC1