2013-11-01 40 views
0

我目前做一個登記表,並粘貼通過$ _ POST 篩選的所有元素:

<input type="text" placeholder="Your username" name="username" value="<?php echo @$username; ?>"> 

我的問題是我想要做一個選擇列表

<select name="Icecream Flavours"> 
    <option value="double chocolate">Double Chocolate</option> 
    <option value="vanilla">Vanilla</option>  
    <option value="strawberry" selected>Strawberry</option> 
    <option value="caramel">Caramel</option> 
</select> 

並粘貼選定的參數,因爲我會粘貼上面輸入字段的輸入文本。

我設法通過列表來完成它,但它看起來很混亂,有時不適用於所有瀏覽器。

回答

2

Yoor的第一行代碼應該是:

<input type="text" placeholder="Your username" name="username" value="<?php echo isset($_POST['username'])?$_POST['username']:null; ?>"> 

使用surpressor操作@是矯枉過正,並減慢你的腳本沒有任何理由。

對於您的選擇,我將使值環存儲在一個數組,然後在其上方,對每個數組項比較$_POST值,如果true添加selected的選項輸出。

所以,你的代碼變得somewaht像

<?php 

$myOptions = array(
    'double' => 'Double chocolate', 
    'vanilla' => 'Vanilla', 
    'strawberry' => 'Strawberry' 
    /* and so on */ 
); 

?> 

<select name="Icecream_Flavours"> 

<?php 

foreach($myOptions as $key => $opt) { 
    $selected = (!isset($_POST['Icecream_Flavours']) || $key != $_POST['Icecream_Flavours'])?null:' selected'; 

    echo '<option value="' . $key . '"' . $selected. '>' . $opt . '</option>'; 
} 

?> 

</select> 
+0

我還挺早知道是這樣,但沒有找到替代的,感謝您的回答。然而,我得到這個錯誤:解析錯誤:語法錯誤,意外的'?',期待','或')'在C:\ xampp \ htdocs \ spr \ register.php在線147 – Cataneo

+0

@Cataneo它是'isset($ _POST ['username'])?$ _ POST ['username']:'';' – Asenar

+0

忘記'isset()'函數的右括號。在我的回答中編輯它。 – TiMESPLiNTER