2010-12-06 2 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

관련 문제