如何在链接中使用查询字符串发送$ _POST

时间:2016-02-27 04:06:25

标签: php jquery ajax post pagination

这是php代码,用于检查表单(在同一页面上)是否已发布并根据$ _POST数组获取结果(如果已发布)或从数据库返回所有结果。这也设置了$ total变量,其中包含稍后用于分页的number_of_pages

if(!isset($_POST['search']))
{

$id = (isset($_GET['id']) ? $_GET['id'].'0' : 10);
$id = $id-10;
$query  = "select SQL_CALC_FOUND_ROWS * from feedbacks order by Date desc limit $id, 10 ";
}
else if (!empty($_POST['from']))
{

$timstmp = strtotime($_POST['from']);
$dt = date("Y-m-d H:i:s", $timstmp);

$id = (isset($_GET['id']) ? $_GET['id'].'0' : 10);
$id = $id-10;
$query = "SELECT SQL_CALC_FOUND_ROWS * FROM `feedbacks` WHERE `Date` >= \"$dt\" order by Date desc limit $id, 10 ";
}
else if (!empty($_POST['name']))
 {

$name = '%'.$_POST['name'].'%';

 $id = (isset($_GET['id']) ? $_GET['id'].'0' : 10);
$id = $id-10;
$query = "SELECT SQL_CALC_FOUND_ROWS * FROM `feedbacks` WHERE `name` LIKE  '$name' order by Date desc limit $id, 10 ";
}
 $result= mysqli_query($connection, $query);

$r =  mysqli_fetch_array(mysqli_query($connection, 'SELECT FOUND_ROWS()'));
$total = ceil($r['FOUND_ROWS()']/10);

$feedbacks = array(); 
for ($i = 0;$row= mysqli_fetch_assoc($result); $i++)
{
    $feedbacks[$i] = new FeedBack($row);
}


?>

这些是自动生成的html链接,具体取决于根据数据库结果计算的总页数

<?php
if ($total>1)
{ ?> <div class="pagging">
<?php     for( $i=$total; $i>=1; $i--)
{ ?>

                        <div class="right">
                            <a id="pagination" href="index.php?id=<?php echo $i; ?>"><?php echo $i; ?></a>
                        </div>

                    <?php } ?>
                     </div>
            <?php       } ?>
                </div>
                <!-- Table -->

在此页面上,我实施了过滤器。用户在表单中输入数据并按下搜索,这取决于$ _POST数组加载不同的结果和变量$ total包含num_of_pages被修改为第1个php代码块显示现在第一页显示数据库使用偏移的第1个10个结果0或ofset = IDX10-10如果设置了id,但问题是它仅适用于默认结果,即当显示所有结果并且未应用过滤器但是当用户搜索过滤后的第10个过滤结果时,但是当用户单击时下一页它不起作用,因为$ _POST未设置,由php检查上面的PHP代码中的条件。所以我的问题是如何发送$ _POST []和id以使其工作。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

您无法通过链接发送POST变量。你需要使用GET。

<a href="some_page.php?<?=http_build_query($assc_array);?>">Link</a>
//the link will reflect some_page.php?name1=value1&name2=value2...etc

在PHP端使用$ _GET或$ _REQUEST变量,而不是$ _POST。