[英]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'] = '«';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '»';
$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.