2012-04-29 73 views
0

我有一個php表單,它將數據提交給另一個php進行驗證。如果任何字段留空,驗證器PHP會使用會話變量將消息發回原始php表單以及所有預先填充的變量,以便用戶不必再次填充它們。根據會話變量選擇下拉列表

我可以再次使用這些會話變量填寫文本框這樣

value="<?php echo $_SESSION['fname'] ?>" 

,但如何去填充下拉菜單,單選按鈕和複選框?

感謝

+0

與TEXT類型的INPUT元素一樣,您可以使用所有其他INPUT元素。 – SteAp

+0

下拉框已選擇選項無輸入選項 – ABI

回答

1

<select>元素的選擇<option>不是由它確定的value=屬性。爲了紀念中選擇一個選項,<option>元素必須有selected屬性設置就可以了,具體如下:

<select> 
    <option>1</option> 
    <option selected>2</option> 
    <option>3</option> 
</select> 

以編程方式做到這一點,你需要通過選項進行迭代,並手動測試的正確的選項,並添加到selected

4

對於選擇,複選框或單選框,您需要檢查值是否匹配。喜歡的東西:

<select name="fname"> 
<option value="1" <?php if($_SESSION['fname'] == 1) echo 'selected'; ?>>1</option> 
<option value="2" <?php if($_SESSION['fname'] == 2) echo 'selected'; ?>>2</option> 
</select> 

這是更容易,如果你是通過該選項字段中的值迭代:

<select name="fname"> 
<?php foreach($array AS $key => $value) { ?> 
    <option value="<?php echo $value; ?>" <?php if($_SESSION['fname'] == $value) echo 'selected'; ?>><?php echo $value; ?></option> 
<?php } ?> 
</select> 
+0

無法使其工作,當頁面重新加載時總是選擇「2」 – ABI

1

有使用jQuery一個簡單得多的方法。您可以使用.val()設置SELECTS,以充分利用它。

<script type="text/javascript"> 
$("#fname").val("<?php echo $_SESSION['fname']"; ?>); 
</script> 

不要忘記作爲名稱來設置選擇的ID以及到FNAME

0

...注意到您在聲明的結尾雙引號是沒有道理的,它應該是:

<script> 
    $("#fname").val("<?php echo $_SESSION['fname'] ?>"); 
</script> 
相關問題