我的表单上有一些选择列表,看起来有点像这样:
<option value="400000" <?php if($_GET['MaxPrice'] == "400000") { echo("selected"); } ?>>£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"); } ?>>£100,000</option>
<option value="200000" <?php if($_GET['MaxPrice'] == "200000") { echo("selected"); } ?>>£200,000</option>
<option value="300000" <?php if($_GET['MaxPrice'] == "300000") { echo("selected"); } ?>>£300,000</option>
<option value="400000" <?php if($_GET['MaxPrice'] == "400000") { echo("selected"); } ?>>£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");
答案 0 :(得分: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个标签,例如<option value="100000" selected="selected">100,000</option>
。
此代码也使用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 ">£ " . number_format($value, 0, '.', ',') . "</option>";
}
?>
</select>
答案 1 :(得分:0)