繁体   English   中英

页面刷新后记住所选选项

[英]Remembering the selected option after page refreshed

我有一个从用户的鞋子的最小尺寸和最大尺寸获取的表格,并通过POST方法在同一页面上打印了此尺寸范围内的所有鞋子。

表单操作导致到同一页面,因此该页面有所刷新,并获得POST变量的新值。

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

<option value="49.0" selected="selected">49.0</option>

当然,在刷新页面后仍会选择,因此它会打印X尺寸的结果,但是所选的选项是49.0

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

您可以为此使用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>

如果您已经在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" ?>

它不是最优雅,但可以

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

这将生成<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";

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM