簡體   English   中英

使用select選項作為main的Ajax中的分頁在codeigniter中不起作用

[英]Pagination in Ajax with select option as main doesn't work in codeigniter

這是我的選擇選項:

<select id="slc_action" class="form-control" style="margin:0;">
    <option value="0"> Select Activity</option>
    <?php foreach($admin_action as $row){
        echo "<option  value='" . $row['action_id'] . "''>" . $row["event"] . "</option>";
     }?>
</select>

這是我的jquery:

<script>
$(document).ready(function() {
    $("#slc_action").change(function(){
        var action_id = $("#slc_action").val();
        jQuery.ajax({
            type: 'POST',
            url: '/ADMIN/ajax/activity_list',
            dataType: 'html',
            data: {action_id: action_id
            },
            success: function(res) {
                if (res)
                {
                    $("#activity_list").html(res);
                }
            }
        });
    });
});
</script>

這是我的ajax調用控制器:

function activity_list(){

    $action_id = $this->input->get("action_id");
    $config = array();
    $config["base_url"] = "/ADMIN/Account/admin_activity/";
    $config["total_rows"] = $this->Ajax_m->m_count_activity($action_id);
    $config["per_page"] = 10;
    $config["uri_segment"] = 5;

    //config for bootstrap pagination class integration
    $config['full_tag_open'] = '<ul class="pagination">';
    $config['full_tag_close'] = '</ul>';
    $config['first_link'] = false;
    $config['last_link'] = false;
    $config['first_tag_open'] = '<li>';
    $config['first_tag_close'] = '</li>';
    $config['prev_link'] = '&laquo';
    $config['prev_tag_open'] = '<li class="prev">';
    $config['prev_tag_close'] = '</li>';
    $config['next_link'] = '&raquo';
    $config['next_tag_open'] = '<li>';
    $config['next_tag_close'] = '</li>';
    $config['last_tag_open'] = '<li>';
    $config['last_tag_close'] = '</li>';
    $config['cur_tag_open'] = '<li class="active"><a href="#">';
    $config['cur_tag_close'] = '</a></li>';
    $config['num_tag_open'] = '<li>';
    $config['num_tag_close'] = '</li>';

    $config['num_links'] = 10;

    $this->pagination->initialize($config);
    $page = ($this->uri->segment(5)) ? $this->uri->segment(5) : 0;
    $data["no"]=$page;
    $data["activity_list"] = $this->Ajax_m->m_get_activity($action_id,$config["per_page"], $page);
    $data["links"] = $this->pagination->create_links();
    $this->load->view("/ADMIN/".country_code."/Admin_activity_list",$data);
}

這對於ajax模型:

function m_get_activity($action_id,$limit,$start){
    $this->db->limit($limit,$start);
    $this->db->select("admin_name,action_id,querylog,time,");
    $this->db->from("uhd_admin_activity");
    $this->db->where("action_id=",$action_id);
    $query = $this->db->get();
    return $query->result_array();
}

function m_count_activity($action_id){
    if($action_id != null) $this->db->where("action_id = '$action_id'" , NULL, FALSE);

    $this->db->from("uhd_admin_activity");

    return $this->db->count_all_results();
}

我的第一個視圖中的代碼,如果我選擇該選項,它將根據所選的顯示activity_list

我把分頁放在那個ajax url ,比如果我點擊分頁,我的所有activity_list都將消失,所選的選項將返回Select Activity。

伙計們你知道如何解決這個問題嗎?

嘗試以下方式。

在你的控制器中用你的activity_id創建分頁base_url

$action_id = $this->input->post("action_id"); //please use post method as your are posting data using POST in your ajax call
 $config = array();
 $config["base_url"] = "/ADMIN/Account/admin_activity/".$action_id;

現在進入你的admin_activity函數添加參數以接收action_id

function admin_activity($activity_id,$offset) {
    //here $offset will be your page segment no.
   //pass the activity argument along with your view data
   $data['post_activity_id] = $activity_id;
   $this->load->view('view_name',$data);
}

進入你的視野

<select id="slc_action" class="form-control" style="margin:0;">
    <option value="0"> Select Activity</option>
    <?php foreach($admin_action as $row){
        if(isset($post_activity_id) && $post_activity_id == $row['action_id']) {
            echo "<option selected="selected" value='". $row['action_id'] . "''>" . $row["event"] . "</option>";
        } else {
            echo "<option value='" . $row['action_id'] . "''>" . $row["event"] . "</option>";
        }
     }?>
</select>

所以,基本上你只是用action_id創建你的分頁,並且在你的控制器函數中接收到該id之后將其與視圖數據一起發回,並檢查你的輸入控制器是否設置而不是選擇該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM