【问题标题】:Remember Dropdown Selection记住下拉选择
【发布时间】:2011-05-11 02:49:19
【问题描述】:

我的表单上有一些选择列表,看起来有点像这样:

<option value="400000" <?php if($_GET['MaxPrice'] == "400000") { echo("selected"); } ?>>&pound;400,000</option>

如您所见(上图),我有一些 PHP 告诉表单在提交时记住它的选择。

如果没有我上面使用的相当繁重的方法,是否有一小段 PHP 可以记住每个选择?

提前致谢。

更新:

<select name="MaxPrice" id="MaxPrice">
<option value="9999999" selected>Price (Max)</option>
<option value="100000" <?php if($_GET['MaxPrice'] == "100000") { echo("selected"); } ?>>&pound;100,000</option>
<option value="200000" <?php if($_GET['MaxPrice'] == "200000") { echo("selected"); } ?>>&pound;200,000</option>
<option value="300000" <?php if($_GET['MaxPrice'] == "300000") { echo("selected"); } ?>>&pound;300,000</option>
<option value="400000" <?php if($_GET['MaxPrice'] == "400000") { echo("selected"); } ?>>&pound;400,000</option>
</select>

更新 2:有没有办法在一些 JavaScript 中实现这种技术?

if (BuyRent=='buy')
document.SearchForm.MaxPrice.options[9999999]=new Option("Price (Max)","150000000");
document.SearchForm.MaxPrice.options[100000]=new Option("\u00A3100,000","100000");
document.SearchForm.MaxPrice.options[200000]=new Option("\u00A3200,000","200000");
document.SearchForm.MaxPrice.options[300000]=new Option("\u00A3300,000","300000");
document.SearchForm.MaxPrice.options[400000]=new Option("\u00A3400,000","400000");    

【问题讨论】:

  • 这通常是我会使用的方法。但是您可以创建一个 PHP 数组,并循环遍历数组的内容,而不是硬编码一系列

标签: php menu drop-down-menu selection option


【解决方案1】:

通常,您会使用某种循环。这是一个例子:

$my_values = array(100000, 200000, 300000, 400000);

foreach($my_values as $value) {
    echo "<option value=\"{$value}\"";
    echo ($_GET['MaxPrice'] == $value) ? 'selected="selected"';
    echo ">" . number_format($value, 0, '.', ',') . "</option>";
}

这将打印 4 个标签,例如 &lt;option value="100000" selected="selected"&gt;100,000&lt;/option&gt;。

这段代码也使用了ternary operator,但显然不是强制性的,如果需要,可以编写整个 if/else 语句。

编辑:

<select name="MaxPrice" id="MaxPrice">
    <option value="9999999">Price (Max)</option>
    <?php
    $my_values = array(100000, 200000, 300000, 400000);

    foreach($my_values as $value) {
        echo "<option value=\"{$value}\"";
        echo ($_GET['MaxPrice'] == $value) ? 'selected="selected"' : "";
        echo ">&pound; " . number_format($value, 0, '.', ',') . "</option>";
    }
    ?>
</select>

【讨论】:

  • 我应该在我的网站中的什么位置放置类似的东西?
  • 不是手动写下每个&lt;option&gt; 标签,而是使用这个循环来生成它们。所以基本上,你把它放在你的&lt;select&gt; 标签之间,你手动编写标签的地方。显然,您必须将数组中的值替换为您要使用的值!
  • 嗯,没有你的代码有点难。您能否编辑您的第一条消息并将您的整个
  • 好的,我刚刚完成了。我是 Stack Overflow 上的新手,所以我对如何在评论中添加我的代码有点困惑。再次感谢!
  • 谢谢,完美!有没有办法在一些 JavaScript 中实现它?我已经编辑了我的原始帖子。
【解决方案2】:

好问题,这让我想知道是否存在一个 js 插件来记住那里的表单字段。 And the answer seems to be "Yes!"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多