[英]Lost select value after submitting and clicking on link
您好,我遇到的问题是,单击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>
这个想法是,当我从选定的字段中选择了某个值之后,我需要将该值保留在变量中,并且还需要进一步过滤SQL查询,该查询在<a href="">
之后起作用。 在提交表单之后,我得到选择值,但是在进一步过滤后,按下<a href="">
链接中的任何一个,就会消失$_POST
值...按下任何链接后,如何保留该值?
链接单击始终产生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'];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.