我有一個php表單,它將數據提交給另一個php進行驗證。如果任何字段留空,驗證器PHP會使用會話變量將消息發回原始php表單以及所有預先填充的變量,以便用戶不必再次填充它們。根據會話變量選擇下拉列表
我可以再次使用這些會話變量填寫文本框這樣
value="<?php echo $_SESSION['fname'] ?>"
,但如何去填充下拉菜單,單選按鈕和複選框?
感謝
我有一個php表單,它將數據提交給另一個php進行驗證。如果任何字段留空,驗證器PHP會使用會話變量將消息發回原始php表單以及所有預先填充的變量,以便用戶不必再次填充它們。根據會話變量選擇下拉列表
我可以再次使用這些會話變量填寫文本框這樣
value="<?php echo $_SESSION['fname'] ?>"
,但如何去填充下拉菜單,單選按鈕和複選框?
感謝
甲<select>
元素的選擇<option>
不是由它確定的value=
屬性。爲了紀念中選擇一個選項,<option>
元素必須有selected
屬性設置就可以了,具體如下:
<select>
<option>1</option>
<option selected>2</option>
<option>3</option>
</select>
以編程方式做到這一點,你需要通過選項進行迭代,並手動測試的正確的選項,並添加到selected
。
對於選擇,複選框或單選框,您需要檢查值是否匹配。喜歡的東西:
<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>
無法使其工作,當頁面重新加載時總是選擇「2」 – ABI
有使用jQuery一個簡單得多的方法。您可以使用.val()設置SELECTS,以充分利用它。
<script type="text/javascript">
$("#fname").val("<?php echo $_SESSION['fname']"; ?>);
</script>
不要忘記作爲名稱來設置選擇的ID以及到FNAME
...注意到您在聲明的結尾雙引號是沒有道理的,它應該是:
<script>
$("#fname").val("<?php echo $_SESSION['fname'] ?>");
</script>
與TEXT類型的INPUT元素一樣,您可以使用所有其他INPUT元素。 – SteAp
下拉框已選擇選項無輸入選項 – ABI