Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: построить выпадающий список по значению (цифра) из базы данных
 
 автор: fxsektor   (23.10.2007 в 18:28)   письмо автору
 
 

люди, помогите пожалуйста построить (html) выпадающий список со атрибутом selected.
Из базы данных получаю только цифру. В выпадающем списке нужно отрисовать атрибут selected в соответствии с ID:


<select name="rez_rubrika">
    <option value="1">IT, компьютеры, работа в интернете</option>
    <option value="2">Бухгалтерия, финансы, работа в банке</option> 
    <option value="3">Индустрия красоты</option>
    <option value="4">Кадровые службы, HR</option>
    <option value="5">Консалтинг, тренинги</option> 
    <option value="6">Культура и искусство</option> 
    <option value="7">Лингвистика</option>
</select>

   
 
 автор: sim5   (23.10.2007 в 18:31)   письмо автору
 
   для: fxsektor   (23.10.2007 в 18:28)
 

А этот список вы прописываете или цикл "рисует"?

   
 
 автор: fxsektor   (23.10.2007 в 18:39)   письмо автору
 
   для: sim5   (23.10.2007 в 18:31)
 

прописывал

   
 
 автор: sim5   (23.10.2007 в 18:41)   письмо автору
 
   для: fxsektor   (23.10.2007 в 18:39)
 

Тогда не возможно узнать какой опшен у вас должне быть выбран, если только ручками не прописать.

   
 
 автор: fxsektor   (23.10.2007 в 18:48)   письмо автору
 
   для: sim5   (23.10.2007 в 18:41)
 

возможно мы друг-друга не поняли. Я получаю id из базы данных, например '5'. Есть заранее определенный список:
...
<option value="4">Кадровые службы, HR</option>
<option value="5">Консалтинг, тренинги</option>
<option value="6">Культура и искусство</option>
...
задача в том, чтобы построить данный список с атрибутом selected где value=5

   
 
 автор: sim5   (23.10.2007 в 18:55)   письмо автору
 
   для: fxsektor   (23.10.2007 в 18:48)
 

value="5" - это у вас просто текст, вы же не можете это сравнить с чем-то. Если бы вы выводили этот список в цикле, тогда можно:


<?
$id 
//id полученного из базы
//а в циле вывода списка
<option value="5" <?if ($i == $id) echo 'selected';?>>Консалтинг, тренинги</option>
//где $i индекс цикла

   
 
 автор: fxsektor   (23.10.2007 в 18:59)   письмо автору
 
   для: sim5   (23.10.2007 в 18:55)
 

а вот эта конструкция

<option value="5" <?if ($i == $id) echo 'selected';?>>Консалтинг, тренинги</option>

она тоже через echo выводится? или внутри цикла можно выходить из php?

   
 
 автор: sim5   (23.10.2007 в 19:04)   письмо автору
 
   для: fxsektor   (23.10.2007 в 18:59)
 

Цикл - это и есть РНР, в данном случае, а внутри цикла вы можете делать все что вам нужно, только пример выше это пример, реально запись будет не так выглядеть. Суть в том, что вам надо как-то определить выбранный опшен, вне РНР сценария как вы это сможете сделать?

   
 
 автор: Dmitry Berkut   (23.10.2007 в 19:04)   письмо автору
 
   для: sim5   (23.10.2007 в 18:55)
 

А у меня похожая ситуация, только у меня в каждом "option" js-функция. Можно ли как-нть сделать так, чтобы функция возврацала значение "selected"???


<select name="selectgolos" style="position:absolute;left:401px;top:606px;width:141px;z-index:28">
<option value="0" onClick="screenxy('<?echo$str;?>')"></option>
<option value="1" onClick="screenxy('<?echo$str;?>')">Отвратительный</option>
<option value="2" onClick="screenxy('<?echo$str;?>')">Не очень</option>
<option value="3" onClick="screenxy('<?echo$str;?>')">Нормальный</option>
<option value="4" onClick="screenxy('<?echo$str;?>')">Хороший</option>
<option value="5" onClick="screenxy('<?echo$str;?>')">Отличный</option>
</select>

   
 
 автор: sim5   (23.10.2007 в 19:07)   письмо автору
 
   для: Dmitry Berkut   (23.10.2007 в 19:04)
 

Функция screenxy('arg') может вам все сделать из возможного, но на стороне клиента.

   
 
 автор: fxsektor   (23.10.2007 в 19:21)   письмо автору
 
   для: sim5   (23.10.2007 в 18:55)
 

Ошибка, если $i это счетчик, то цикл прогоняет все опшны столько раз, сколько сам проходит :(

   
 
 автор: fxsektor   (23.10.2007 в 20:10)   письмо автору
 
   для: fxsektor   (23.10.2007 в 19:21)
 

А как сами названия рубрик загнать в массив и построить <select>?

   
 
 автор: sim5   (23.10.2007 в 20:21)   письмо автору
 
   для: fxsektor   (23.10.2007 в 20:10)
 

Ну во первых, цикл и должен пройти полностью. Во вторых с чем вы хотите сравнивать? Например. Вы динамически в цикле "рисуете" список. Пользователь на странице выбирает опшен из этого списка, и вам отправляется запрос, например: url?sel=4. Тогда вы, при формировании списка сравниваете значение sel с индексом массива. Это для того, чтобы при открытии страницы уже был установлен выбранный пользователем опшен.
Начальное значение индекса цикла вы можете установить в 1, у вас опшены начинаются с этого значения, а массивы с нулевого, поэтому лучше начинать цикл с 0, а для проверки плюсовать к нему 1.
С чем вы хотите сравнивать значение опшена, это вам виднее, я лишь как пример написал это, потому, что возможно у вас условие всегда будет false.
А массив так и записывайте:
$myarr = array('запись0','запись1','запись2',..)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования