簡體   English   中英

如何使動態下拉列表中的選定值保持選中狀態?

[英]How to make the selected values in a dynamic drop down lists remain selected?

我有5個下拉列表和一個提交按鈕。 下拉列表的每個內容取決於上一個下拉列表的選擇值。 我想確保即使單擊提交按鈕后,每個下拉列表的選定值仍保持選中狀態。 有人可以幫我嗎? 我看到了一個做到這一點的網站,但該網站是在ASP.NET中制作的,我更喜歡使用PHP,javascript

<script type="text/javascript">
function changeSelect(lang, num, valueElement, nameSelect, nameSpan, dataSup, endId){
    var boxName =  document.getElementById(nameSelect);
    var hackIeSpan =  document.getElementById(nameSpan);
    var contentOption = $.ajax({
          url: "select.php",
          global: false,
          type: "POST",
          data: {
                 lang : lang,
                 num : num,
                 select : valueElement,
                 dataSup : dataSup,
                 endId : endId
             },
          dataType: "html",
          async:false,
          success: function(msg){
        }
       }
    ).responseText;
    hackIeSpan.innerHTML = contentOption;
}

<form id="searchForm" method="post" action="search.php?search&page=0&lang=<?php echo $lang; ?>">
            <fieldset>

                <select name="sort" onchange="changeSelect('<?php echo $lang; ?>', 1, this.value, 'type_list', 'hackIeType', 'null', 'null'); return true;">
                    <option value="0"><?php echo trad('SEARCH_01', $lang); ?></option>
                    <option value="Rental"><?php echo trad('SEARCH_01a', $lang); ?></option>
                    <option value="Sale"><?php echo trad('SEARCH_01b', $lang); ?></option>
                </select>

                <span id="hackIeType">
                    <select name="type_list">
                        <option value="0"><?php echo trad('SEARCH_04', $lang); ?> ...</option>
                    </select>
                </span>

.......

<span id="hackIeSleeps">
                    <select name="bedrooms">
                        <option value="0"><?php echo trad('SEARCH_05', $lang); ?> ...</option>
                    </select>
                </span>
                <span id="spanEndId">
                    <input id="endId" name="endId" type="hidden" value="" /> 
                </span>

                <input id="submit_search_home" type="submit" value="<?php echo trad('BTNSEARCH', $lang); ?>" />

            </fieldset>

按下提交按鈕會怎樣? 您最終回到同一頁面嗎? 您只需要根據$_POST發送的值為必需的選項提供selected="selected"屬性即可。

作為一個示例(這可能對您不起作用,具體取決於您按提交時發生的情況):

<form id="searchForm" method="post" action="search.php?search&page=0&lang=<?php echo $lang; ?>">
  <fieldset>
    <select name="sort" onchange="changeSelect('<?php echo $lang; ?>', 1, this.value, 'type_list', 'hackIeType', 'null', 'null'); return true;">
      <option value="0"<?php if ($_POST['name'] === '0') echo ' selected="selected"'; ?>><?php echo trad('SEARCH_01', $lang); ?></option>
      <option value="Rental"<?php if ($_POST['name'] == 'Rental') echo ' selected="selected"'; ?>><?php echo trad('SEARCH_01a', $lang); ?></option>
      <option value="Sale"<?php if ($_POST['name'] == 'Sale') echo ' selected="selected"'; ?>><?php echo trad('SEARCH_01b', $lang); ?></option>
    </select>
    <span id="hackIeType">
<?php

  if ($_POST['name'] === '0') {
   // The first select value is default, so we can just output a standard select
   // to be populated by AJAX

?>
      <select name="type_list">
        <option value="0"><?php echo trad('SEARCH_04', $lang); ?> ...</option>
      </select>
<?php

  } else {
   // The first select is populated, so copy the logic that generates your second
   // select from 'select.php' and put it here, then output it
  }

?>
   </span>

.......

    <span id="hackIeSleeps">
<?php

  if ($_POST['type_list'] === '0') {
   // The second select value is default, so we can just output a standard select
   // to be populated by AJAX

?>
      <select name="bedrooms">
        <option value="0"><?php echo trad('SEARCH_05', $lang); ?> ...</option>
      </select>
<?php

  } else {
   // The second select is populated, so copy the logic that generates your third
   // select from 'select.php' and put it here, then output it
  }

?>
    </span>
    <span id="spanEndId">
      <input id="endId" name="endId" type="hidden" value="" /> 
    </span>
    <input id="submit_search_home" type="submit" value="<?php echo trad('BTNSEARCH', $lang); ?>" />
  </fieldset>

暫無
暫無

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

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