输入表格
<form action="<?php echo (htmlspecialchars($_SERVER["PHP_SELF"] .'?page=1')) ?>" method="post">
<input type='text' name='date_month' value='<?php echo $_POST['date_month'].$_GET['date_month']?>'>
</form>然后接收输入
$post_date_month = $_POST['date_month'].$_GET['date_month'];基于输入选择/从mysql获得过滤数据
由于可能有很多行数据,所以创建了分页。像这样
for ($page_i = 1; $page_i <= $total_pages; $page_i++) {
echo "<a href='__filter_mysql_data.php?page=$page_i&date_month=$post_date_month&date_year=$post_date_year'>| $page_i |</a> ";
}Note!如果在url中我不使用&date_month=$post_date_month,那么当用户单击页面编号$page_i时,脚本将显示来自mysql的所有数据(不是基于$post_date_month;不仅仅是用户选择的月份,而是所有月份,因为在页面重新加载$_POST['date_month']“消失”之后)。
这是我唯一的解决方案(已经找到了几个有分页类的例子,但是这些例子对我来说非常复杂,所以不能在合理的时间内为我的需要提供支持)。所以决定创造一些简单的东西。
脚本的工作原理是必要的,只是这个$post_date_month = $_POST['date_month'].$_GET['date_month'];看起来有点“疯狂”。因此,问题是:代码是否可以接受(可以在脚本中使用)?使用相同的查询(单击),用户可以设置/传递$_POST或$_GET,而永远不会两者兼而有之。
更新
根据汉奇·潘奇的建议(不幸被删除)
$post_date_month = $_POST['date_month'].$_GET['date_month'];
至
$post_date_month = $_REQUEST['date_month'];
发布于 2013-06-17 17:07:43
您可以这样构建表单,但是当您使用POST提交表单时,该特定变量将完全存储在$_POST['date_month']中。
在您的示例中,当您提交表单时,您只会在page中找到GET变量(假设$_SERVER["PHP_SELF"]中没有查询字符串)。
所以你只需要用:
$post_date_month = $_POST['date_month'];但是,如果希望用户只以一种方式提供月份(post或get),则最好使用如下(为清晰起见而写出)的内容:
if (isset($_POST['date_month']))
{
$post_date_month = $_POST['date_month'];
}
elseif (isset($_GET['date_month']))
{
$post_date_month = $_GET['date_month'];
}
else
{
// no month given, so for example:
$post_date_month = '';
}发布于 2013-06-17 17:00:18
代码有点奇怪,但我认为它是可以接受的。请注意不要将未转义的$_POST ang $_GET变量传递给查询,因为它可以是since的向量。
https://stackoverflow.com/questions/17152838
复制相似问题