4

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

表单操作指向同一页面,因此页面有点刷新并获取 POST 变量的新值。

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

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

当然在页面刷新后仍然被选中,因此它打印 X 大小的结果,但选择的选项是 49.0

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

4

4 回答 4

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>
于 2013-06-18T17:38:58.133 回答
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" ?>

于 2013-06-18T17:44:49.183 回答
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>
于 2013-06-18T17:49:18.400 回答
0

这会生成<option></option>元素并在需要时添加“选定”。这使您不必使用您的客户可能会阻止的 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";

?>
于 2013-06-18T18:42:38.203 回答