在刷新页面后记住所选选项

时间:2013-06-18 17:35:19

标签: php html

我有一个从用户最小尺寸和鞋子最大尺寸得到的表格,并通过POST方法在同一页面上打印所有这种尺码范围的鞋子。

表单操作将指向同一页面,以便刷新页面并获取POST变量的新值。

我的问题是默认选择选项(例如)

<option value="49.0" selected="selected">49.0</option>
页面刷新后仍然会选择

,因此会打印X尺寸的结果,但选择的选项是49.0

我的问题是如何将默认选项更改为用户在提交表单之前选择的默认选项,换句话说更改为$ _POST ['minSize']和$ _POST ['maxSize']

4 个答案:

答案 0 :(得分:4)

您可以使用JavaScript:

<script type="text/javascript">
  document.getElementById('idofselectlist').value = "<?php echo $_POST['minSize'];?>";
</script>

<script type="text/javascript">
  document.getElementById('idofselectlist').value = "<?php echo $_POST['maxSize'];?>";
</script>

答案 1 :(得分:1)

如果您已经拥有POST数组中的值,那么您可以使用内联php构建表单输入,以回显用户选择的值。如果未设置POST,您可以将条件设​​置为页面顶部,将值设置为默认值。

//check if max size is set via post
if(!isset($_POST['maxsize'])){
    $maxSize = 10;
}else{
    $maxSize = $_POST['maxsize'];
}

//check if min size is set via post
if(!isset($_POST['maxsize'])){
    $minSize= 1;
}else{
    $maxSize = $_POST['minsize'];
}

然后与你的html内联,使用此

<form action="form_handle.php">
  Min shoe size: <input type="text" name="min" value="<?=$minSize; ?>"><br>
  Max shoe size: <input type="text" name="max" value="<?=$maxSize; ?>"><br>
  <input type="submit" value="Submit form">
</form>

我正在使用与<?="hello" ?>

相同的简写<?php echo "hello" ?>

答案 2 :(得分:1)

它不是最优雅的,但它有效

    <?php if(isset($_POST['min'])) $selected = true; ?>
<form action="test.php" method="POST">
<select name="min">
    <option value="49.0" <?php if(isset($selected) && $selected && $_POST['min']=='49.0') echo 'selected="selected"'?>>49.0</option>
    <option value="48.0" <?php if(isset($selected) && $selected && $_POST['min']=='48.0') echo 'selected="selected"'?>>48.0</option>
    <option value="47.0" <?php if(isset($selected) && $selected && $_POST['min']=='47.0') echo 'selected="selected"'?>>47.0</option>
    <option value="46.0" <?php if(isset($selected) && $selected && $_POST['min']=='46.0') echo 'selected="selected"'?>>46.0</option>
    <option value="45.0" <?php if(isset($selected) && $selected && $_POST['min']=='45.0') echo 'selected="selected"'?>>45.0</option>
</select>
<input type="submit" value="Press">
</form>

答案 3 :(得分:0)

这将生成<option></option>元素,如果它们是需要的元素,则添加“selected”。这使您不必使用客户可能阻止的JavaScript。

$minSize = ( isset($_REQUEST['minSize']) ) ? $_REQUEST['minSize'] : 10;
$maxSize = ( isset($_REQUEST['maxSize']) ) ? $_REQUEST['maxSize'] : 50;

echo "<select name=\"minSize\">\n";
for ($i=10;$i<=50;i++)
{
    echo "\t<option value=\"".$i."\"".(($i==$minSize) ? " selected" : "").">".$i."</option>\n";
}
echo "</select>\n<select name=\"maxSize\">\n";
for ($i=10;$i<=50;i++)
{
    echo "\t<option value=\"".$i."\"".(($i==$maxSize) ? " selected" : "").">".$i."</option>\n";
}
echo "</select>\n";

?>