2012-06-17 66 views
1

使用PHP餘回聲出表中的行中這樣的循環:循環中的PHP循環,選擇了哪個選項?

<?php 
/* SQL STUFF */ 

    while ($row = mysql_fetch_array($select_courseelements)) { 
    echo "<tr>\n"; 
    echo "<td>".$row['scpe_name']."</td>\n"; 
    echo "<td>".$row['scpe_days']."</td>\n"; 
    echo "</tr>\n"; 
    } 

現在我想包括<select>元件與<td>內部5個預定<option>值與循環中運行。選項value s將爲1到5.

$row循環中還有一列保存值爲1到5($row['scpe_grades_status'])。

每次該值等於<select>中的值時,我都希望它將其更改爲selected='selected'

這可能嗎?

<select>會是這個樣子時,它的beeing在循環運行:

echo "<td>\n"; 
echo "<select id='elements_grade'>\n"; 
     echo "<option value='1'>Registrerad</option>\n"; 
     echo "<option value='2'>Ej påbörjad</option>\n"; 
     echo "<option value='3'>Pågående</option>\n"; 
     echo "<option value='4'>Godkänd</option>\n"; 
     echo "<option value='5'>Deltagit</option>\n"; 
     echo "<option value='6'>Ej deltagit</option>\n"; 
echo "</select>\n"; 
echo "</td>\n"; 

回答

5
$array = array('Registrerad' => 1, 'Ej påbörjad' => 2, 'Pågående' => 3, 'Godkänd' => 4, 'Deltagit' => 5, 'Ej deltagit' => 6); 

foreach ($array as $key=>$value) { 
    if ($value == $row['scpe_grades_status']) 
     echo '<option value="'.$value.'" selected>'.$key.'</option>'; 
    else 
     echo '<option value="'.$value.'">'.$key.'</option>'; 
} 

類似的東西?

+0

謝謝你的回答。儘管你的代碼似乎有問題。它只生成一個'

+0

@David我已經更新了代碼,請重試。 – 2012-06-17 12:17:30

+0

謝謝,現在就像魅力一樣! :) – David

7

當然,從一個循環建立的值。並且您可以比較該部分的值。

for($i = 1; $i<=5; $i++) { 
    echo "<option value='$i'"; 
    echo ($row['scpe_grades_status'] == $i) ? " selected='selected'": ""; 
    echo ">...."</option>" 
}