这是我的AJAX调用:Ajax请求传递变量,并要求DB的WHERE =变量
function ck_loader() {
row_count = $('.grid-item').length || 0;
$.ajax({
type: "POST",
url: baseURL + "welcome/load_more",
data: {offset: row_count, numbdata: permaData},
datatype: 'json',
success: function (response) {
if (response === "") {
$grid.packery();
}
} else {
var $response = $(response);
$(".grid").append($response);
$grid.packery('addItems', $response);
$grid.packery();
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown);
//alert("ERROR");
}
});
所以偏移计算元素是目前visable(行)的数量,并有助于控制的偏移数据库(加载每个呼叫15个元素)
numbdata: permaData
是一个变量,我保存过滤器选择,所以我的菜单有一个过滤器选择,并从那里的数据保存在一个变量(当有人按“视频”过滤器,它节省了“视频”内的permaData
)
它连接到:
public function load_more()
{
$offset = $this->input->post('offset');
if($offset)
{
$new_rows = $this->postovi_model->get_next_10($offset);
if(isset($new_rows))
{
$data['users'] = $new_rows;
//this will return (echo) html to the ajax success function
//CI takes care of making the correct response headers - sweet
$this->load->view('user_rows_view', $data);
}
else
{
echo ""; //return an empty string
}
}
}
没有包括在这个PHP脚本模型:
public function get_next_10($offset = 0)
{
$this->db->limit(15, $offset);
$this->db->order_by('date', 'asc');
$query = $this->db->get("postovi");
return $query->num_rows() > 0 ? $query->result_array() : NULL;
}
}
在这个模型中,我失踪WHERE
和WHERE
过滤器是一样的$permaData
。
每个过滤器都应该将$Offset
重置为0并为该内容运行数据库。
permaData
在选择任何过滤器之前以“*”开头。
因为很难阅读,所以我对代码进行了重新缩进。这带来了一些与匹配大括号等语法错误。这是你复制和粘贴的真实代码?你是否看到任何控制台错误? – moopet
没有更多的垃圾无处不在,但并不想放置100行的JavaScript添加类和东西... – FTWwings