搜索代码在分页期间未执行

时间:2016-12-25 16:23:56

标签: php filter pagination

我理解为什么以下代码在分页期间不会执行,因为我使用isset($POST_)但我真的不知道如何修复它,所以我希望你能指出我正确的方向。

单击搜索时,以下代码被激活:

$where_clouse='';

if(isset($_POST['todo']) && $_POST['todo']=='search')
{
    if($_POST['admin_rating']!=0){
        $where_clouse.=' AND P.`admin_rating`='.$_POST['admin_rating'];
    }
}

这是启用分页并从表中提取所有数据并将其呈现在数组中的原因,同时也是在单击下一页或第2页等时执行的代码。

$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
$limit = 10; // number of rows in page
$offset = ( $pagenum - 1 ) * $limit;
$total = $wpdb->get_var( "SELECT COUNT(`user_id`) FROM `wp_writer` as P WHERE EXISTS (SELECT * FROM `wp_writer` as A WHERE `status` = '1')".$where_clouse );
$num_of_pages = ceil( $total / $limit );

$sql="SELECT P.`user_id`, P.`photo`,P.`status`,P.`admin_rating`,P.`my_rate`,P.`country`,P.`skills`,P.`interests`,P.`introduction` FROM `wp_writer` AS P
    WHERE P.`status` = '1' ". $where_clouse ."  ORDER BY P.`user_id`  ASC LIMIT $offset, $limit";

$writers=$wpdb->get_results($sql, ARRAY_A);

此处搜索过滤器代码以及设置待办事项状态:

                <form action="" method="post" >
                    <input type="hidden" name="todo" id="todo"  value="search" />
                    <div class="row lefts">
                        <label>Writers</label>
                        <span class="All lefts"><a href="">All</a></span>
                        <label>Levels</label>
                        <select name="admin_rating" id="admin_rating">
                            <option value="0">All</option>
                            <?php $category=getWriterRatings(); foreach($category as $cat){ ?>
                                <option value="<?php echo $cat['id']; ?>"   <?php if(isset($_POST['admin_rating']) && $_POST['admin_rating']==$cat['id'] ) { echo 'selected="selected"';  } ?>  ><?php echo $cat['cname'] ?></option>
                            <?php } ?>                                
                        </select>
                        <input class="submit_search" type="submit" id="submit_button" value="Search"/>
                    </div>
                </form>

在页面上的分页代码下面:

                <ul>
                    <span class="go">Go to page: </span>
                    <?php
                        $page_links = paginate_links( array(
                            'base' => add_query_arg( 'pagenum', '%#%' ),
                            'format' => '',
                            'prev_text' => __( '&laquo;', 'text-domain' ),
                            'next_text' => __( '&raquo;', 'text-domain' ),
                            'total' => $num_of_pages,
                            'current' => $pagenum
                        ) );

                        if ( $page_links ) {
                            echo '<li class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></li>';
                        }
                    ?>
                </ul>

因此,当我选择一个级别时,标题中的所有代码都会被执行并且100%正常工作,所以所有代码都正常工作。

但是当我点击第2页或第3页时,所有十个结果都会显示,例如分页工作正常,但搜索过滤器在此过程中丢失,因为我只能想象它不会保存{{ 1}}部分页面重置。

例如,我在数据库中有40行,当我点击第2页时,行11-20显示,但没有应用搜索过滤器。

解决方案可能是将搜索参数添加到分页部分,但是如何。

我不得不解雇我的程序员,因为我对PHP知之甚少,他们提供了一个包含错误的平台,拒绝修复它,而不是我一次又一次地支付。他们的典型回应是:“当您需要新功能时,我们会对其进行修复。”所以在某些时候我已经足够了,特别是在我发现他们不诚实之后,我要求进行一些小改动,他们说会花费几个小时的编程但很快我发现这只是一个改变的问题代码中的0到1让消息以无模式的方式通过,这就是让桶溢出的滴水(这甚至是英语中的一种说法吗?我知道它是用荷兰语写的。)

谢谢你,祝圣诞快乐!

0 个答案:

没有答案