簡體   English   中英

根據會話變量選擇下拉值

[英]select dropdown value based on session variable

我有一個php表單,可將​​數據提交到另一個php進行驗證。 如果任何字段留為空白,驗證器php會使用會話變量將消息連同所有預填充變量一起發送回原始php表單,從而使用戶不必再次填充它們。

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

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

但是如何填充下拉列表,單選按鈕和復選框呢?

謝謝

對於選擇,復選框或單選框,您需要檢查值是否匹配。 就像是:

<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>

<select>元素的選擇的<option>不是由其value=屬性確定的。 為了標記一個選項,必須在<option>元素上設置selected屬性,如下所示:

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

為了以編程方式執行此操作,您需要遍歷選項,並手動測試正確的選項,然后將selected添加到該選項中。

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

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

不要忘記將select的ID以及名稱設置為fname

...注意,語句末尾的雙引號放錯了位置,應為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM