我正在使用此代码 http://www.9lessons.info/2010/10/pagination-with-jquery-php-ajax-and.html
并且效果很好,我想添加按钮让用户将视图从垂直更改为水平
我编辑了load_data.php并添加了所需的所有代码。
我编辑的控制器中的:
data: "page="+page,
到
data: "page="+page+"&view="+1,
并在控制器中添加了按钮(btn_view)但我无法使其工作(将值从1更改为2)
并添加了
$('#btn_view').live('click',{ view: "2" },function(){
loadData(1);
});
后
$('#go_btn').live('click',function(){
var pagea = parseInt($('.goto').val());
var no_of_pages = parseInt($('.total').attr('a'));
if(pagea != 0 && pagea <= no_of_pages){
loadData(pagea);
}else{
alert('Enter a PAGE between 1 and '+no_of_pages);
$('.goto').val("").focus();
return false;
}
});
如何让按钮重新加载控制器并在load_data.php中将视图值更改为2
答案 0 :(得分:1)
发送ajax数据的结构错误。我已经转到您的链接并复制了该教程中的函数,并使用传递到ajax view
属性的data
变量进行了更新。
您将view
作为第二个参数传递,如果没有传入任何内容,loadData
将默认为1
。
function loadData(page, view) {
view = view || 1; // view defaults to 1 if not passed in
loading_show();
$.ajax({
type: "POST",
url: "load_data.php",
data: {
page: page,
view: view
},
success: function(msg) {
$("#container").ajaxComplete(function(event, request, settings){
loading_hide();
$("#container").html(msg);
});
}
});
}
那么你的视图按钮代码如下所示:
$('#btn_view').live('click', function(){
var view = 2;
var page = 1;
loadData(page, view);
});
我不确定你在做什么来确定page
是什么,但我猜测它被硬编码到1
函数中你可能需要复制这个代码转换为函数:
function establishPageAndLoadData(view) {
view = view || null; // use view if passed in...
var pagea = parseInt($('.goto').val());
var no_of_pages = parseInt($('.total').attr('a'));
if(pagea != 0 && pagea <= no_of_pages){
loadData(pagea, view); // pass view to load function
} else {
alert('Enter a PAGE between 1 and '+no_of_pages);
$('.goto').val("").focus();
return false;
}
}
$('#go_btn').live('click',function(){
establishPageAndLoadData(); // does page under the hood
});
现在,您已经集中了选择page
变量的代码,您可以在view
按钮中再次使用它。我在可选的view
变量中添加了要在此处使用的函数:
$('#btn_view').live('click', function(){
var view = 2;
establishPageAndLoadData(view); // calculates page under the hood
});
我可能会在这里咆哮错误的树,但是在这里你的控制器总会传递两个帖子变量:page
和view