2010-12-06 13 views
2

データに何らかの編集が必要な場合に表示されるフォームがあります。この形式は、すなわち、複数の選択ボックスのフィールドが含まれている、私はこのフォームに来たときにデータベースからcsvに基づいて複数の選択ボックスの値を再投入/再選択/自動選択する方法はありますか?

<select name="multiple" multiple> 
     <option value="1">asd</option> 
     <option value="2">asaad</option> 
     <option value="3">aslan</option> 
</select> 

は今、私はそれぞれの分野に移入すべての既存の値を取得しますが、私は、この複数選択ボックスは人口得ることはありません。 dbでは、それぞれの値は2,3,4のようなcsv形式で格納されます。

どうやってこれらのcsvを使用して、csv。のそれぞれの複数の選択ボックスに再投入できますか?

答えて

1

$optionsを超える反復のselectbox用にHTMLを生成すると仮定します。次に、現在の値が$csvに存在する場合は、各反復をチェックインし、オプションにselectedパラメータを追加するだけです。

$selection = explode(',', $csv); 
foreach ($options as $value => $name) { 
    $selected = in_array($value, $selection) ? ' selected="selected"' : ''; 
    echo '<option value="'. $value .'"'. $selected .'>'. $name .'</option>'; 
} 
1

...ループ内の実際の選択フィールドをかけることなく、これを行うための

$csvString = "1,3"; 
$options = explode(",", $csvString); 
foreach($options as $val) { 
    ${"opt".$val} = "selected=\"selected\""; 
} 
?> 
<select ...> 
    <option value="1" <?php echo $opt1 ?> >Option 1</option> 
    <option value="2" <?php echo $opt2 ?> >Option 2</option> 
    <option value="3" <?php echo $opt3 ?> >Option 3</option> 
</select> 
+0

興味深い方法をこれが役立つかもしれませんが、良い方法はおそらくあります。 – CyberJunkie

2
<? 
$csvString = "1,3"; 

?> 
<select name="multiple" multiple> 
    <option value="1" <?=strpos($csvString ,'1')!== false?'selected="selected"':''?> >Option 1</option> 
    <option value="2" <?=strpos($csvString ,'2')!== false?'selected="selected"':''?> >Option 2</option> 
    <option value="3" <?=strpos($csvString ,'3')!== false?'selected="selected"':''?> >Option 3</option> 
</select> 
+0

これはどのようにして質問に答えますか? – DaveHogan

関連する問題