Как правильно и лучше подставлять значения в форму ?

bovkun

Новичок
Как правильно и лучше подставлять значения в форму ?

В таблице MySQL есть поле "spisok" (SET cо значениями 'aaa','bbb','ccc')
Как правильно и лучше подставлять эти значение в формы в двух вариантах, т.е.

1) при использовании "input type="checkbox"

Код:
[PHP]<input name="spisok[]" type="checkbox" value="aaa" <? if ( __???__ ){ echo " checked"; } ?>>
<input name="spisok[]" type="checkbox" value="bbb" <? if ( __???__ ){ echo " checked"; } ?>>
<input name="spisok[]" type="checkbox" value="ccc" <? if ( __???__ ){ echo " checked"; } ?>>[/PHP]
2) при использовании "select multiple"

Код:
[PHP]<select name="spisok[]" size="3" multiple>
    <option value="aaa" <? if ( __???__ ){ echo " selected"; } ?>>aaa</option>
    <option value="bbb" <? if ( __???__ ){ echo " selected"; } ?>>bbb</option>
    <option value="ccc" <? if ( __???__ ){ echo " selected"; } ?>>ccc</option>
  </select>[/PHP]

Помогите , плиz...
SOS :)
 

Verk

Guest
возможны оба вирианта. Что конкретно тебе не ясно ?

P.S. IHMO, лучше юзать PEAR::QuickForm
 

гоша

Guest
Можно например так

$set=array("a","b","c");

$spisok=array("a","c") <-- из базы
$flip=array_flip($spisok)

foreach($set as $v)
<input type=checkbox name='spisok[]' <?=isset($flip[$v])?'checked':''?>>

или вы можете получать set от базы в числовом виде и использовать операцию >> для проверки каждого бита. Это эффективно.
 

bovkun

Новичок
Мне и нужно оба варианта.

Сорри... Что-то не пойму... Мне же из этого поля приходит не массив а просто строка "aaa,bbb,ccc"

Что нужно вписать вместо " ( __???__ ) " ?
 

гоша

Guest
[m]explode[/m] сделает из строки массив.
Далее по тексту.
 

bovkun

Новичок
..
$row = @mysql_fetch_assoc($Recordset);
..

if ($row['spisok']=="aaa" ) { echo " checked"; }

и т.д., но ничего не получается...

-~{}~ 20.02.04 18:10:

explode? А иначе никак ?
 

гоша

Guest
я уже тебе все написал
прочитай еще раз.
 
Сверху