我希望在提交/刷新页面后选择下拉列表选项 . 我搜索其他示例,但没有人在我的代码上工作 .
使用此代码提交/刷新后如何保留选定的值?
<form name="test" action="test.php?id=<?php echo $row["id"]; ?>" method="post">
<select id="test_email" name="test_email">
<option value="">...select</option>
<?php
$sql2 = "SELECT test_id, test_email FROM test WHERE status='Act'";
$res = $db->query($sql2);
if ($res->num_rows > 0) {
while($row1 = mysqli_fetch_array($res)) {
?>
<option value="<?php echo $row1['test_email'];?>-<?php echo $row1['test_id'];?>"><?php echo $row1['test_id'];?></option>
<?php
}
}
?>
</select>
Solved this way :
-
因为我无法用
<?php echo $row1['test_email'];?>-<?php echo $row1['test_id'];?>
传递$_POST['test_email']
-
因为我在
$_POST['test_email']
上使用explode
-
我再发一个帖子(在db中插入)
$test_temp = trim(mysqli_real_escape_string($db, $_POST['test_email']));
在db中有我的下拉值(整个字符串) . -
我在表单中添加了隐藏的输入
<input id="test_temp" type="hidden" name="test_temp" value="<?php echo $row["test_temp"]; ?>">
-
并将选择行更改为
<option value="<?php echo $row1['test_email'] . '-' . $row1['test_id']; ?>"<?php if($row1['test_email'] . '-' . $row1['test_id'] == $row['test_temp']) echo ' selected="selected"' ; ?>><?php echo $row1['test_id'];?></option>
.
也许这可能更简单,但它就像一个魅力 .
@ roberto06:谢谢你的指导 .
1 回答
您需要在与
$_POST
值匹配的选项上添加selected="selected"
属性 .您可能还想将
<?php echo $row1['test_email'];?>-<?php echo $row1['test_id'];?>
连接到<?php echo $row1['test_email'] . '-' . $row1['test_id']; ?>
,但这取决于您 .这是一个解决方案(我假设
$POST['test_email']
必须等于$row1['test_email'] . '-' . $row1['test_id']
才能匹配条件) . 我在这里使用shorthand if...else,但你也可以使用经典if
: