2011-09-25 155 views
1

我想從數組中的數據庫檢索選項/值我想設置這些選項/值默認情況下在多選列表中選擇和將它們顯示給用戶,在那裏他們將能夠在必要時更新他們的數據。如何從數組中默認設置多個選擇選項

//data in database 
$mytitle = array(
    'Arbitrator', 
    'Attorney', 
    'Student', 
    'Other' 
); 

//data for multiple select 
$title = array(
    'Judge' , 
    'Magistrate' , 
    'Attorney' , 
    'Arbitrator', 
    'Title Examiner' , 
    'Law Clerk','Paralegal' , 
    'Intern' , 
    'Legal Assistant', 
    'Judicial Assistant', 
    'Law Librarian' , 
    'Law Educator' , 
    'Attorney', 
    'Student', 
    'Other' 
); 

echo "<select name='title[]' multiple='multiple'>"; 

$test = implode(',', $mytitle); 

for ($i=0; $i<=14; $i++) { 
    if($test == $title[$i]) { 
     echo "<option selected value='$title[$i]'>$title[$i]</option>"; 
    } 
    else { 
     echo "<option value='$title[$i]'>$title[$i]</option>"; 
    } 
} 

echo "</select>"; 

回答

3

我想你可能有邏輯錯誤。試試這個作爲你的循環:

foreach ($title as $opt) { 
    $sel = ''; 
    if (in_array($opt, $mytitle)) { 
     $sel = ' selected="selected" '; 
    } 
    echo '<option ' . $sel . ' value="' . $opt . '">' . $opt . '</option>'; 
} 
+0

小的修改,如果u保持這樣的代碼,它會顯示一切都很簡單結果爲Selected。 所以要做的是'if(in_array($ opt,$ mytitle)){ $ sel ='selected =「selected」'; echo''。 $ opt。 ''; } else { echo''; }' –

0

使用in_array()函數。

for ($i=0; $i<=14; $i++) { 
    if(in_array($title[$i], $mytitle)){ 
    echo "<option selected value='$title[$i]'>$title[$i]</option>"; 
    }else { 
    echo "<option value='$title[$i]'>$title[$i]</option>"; 
    } 
} 
0
foreach ($title as &$x) 
{ 
echo "<option ".(in_array($x, $mytitle)?"selected":"")." value='$x'>$x</option>"; 
} 
0

使用jQuery的幫助,其中選擇具有ID測試

$('#test option').attr('selected', 'selected'); 

JSFiddle Example