您好我在点击href后从select标签中丢失$_POST['id']
值时遇到问题。那么代码就在这里:
$page = 1;
if (isset($_POST['id'])){
$id = $_POST['id'];
}
echo $id[0];
?>
<ul>
<li><a href="?show=all">Show All</a></li>
<li><a href="?show=submitted">Show Submitted</a></li>
<li><a href="?show=pending">Show Pending</a></li>
<li><a href="?show=not">Show Not Submitted</a></li>
</ul>
<form action="" method="post">
<select name="id">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
<option value="4">four</option>
<option value="5">five</option>
<option value="6">six</option>
<option value="7">seven</option>
<option value="8">eight</option>
</select>
<input type="submit" name="mode" value="Select" />
</form>
我的想法是,当我从选定字段中选择了一些值之后,我需要将该值保存在变量中,并且还需要进一步过滤在<a href="">
之后有效的SQL查询。
在提交表单后的那一刻,我获得了选择值,但在进一步过滤后,按下任意<a href="">
链接$_POST
值消失...在按任何链接后如何保留该值?
答案 0 :(得分:1)
答案 1 :(得分:0)
链接点击始终生成GET请求,默认情况下不提交表单。因此,您必须将其作为查询参数传递:
<li><a href="?show=all<?=isset($id) ? '&id=' . $id : '' ?>">Show All</a></li>
<li><a href="?show=submitted<?=isset($id) ? '&id=' . $id : '' ?>">Show Submitted</a></li>
<li><a href="?show=pending<?=isset($id) ? '&id=' . $id : '' ?>">Show Pending</a></li>
<li><a href="?show=not<?=isset($id) ? '&id=' . $id : '' ?>">Show Not Submitted</a></li>
当然,在这种情况下,您需要从$_GET
获取它。但是你可以从$_POST
和$_GET
获得它,你可以在这里使用$_REQUEST
:
if (isset($_REQUEST['id'])){
$id = $_REQUEST['id'];
}