使用jquery ajax将数据传递给php文件

时间:2013-12-04 18:35:00

标签: php jquery ajax parameter-passing

我正在使用此代码 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

1 个答案:

答案 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
}); 

我可能会在这里咆哮错误的树,但是在这里你的控制器总会传递两个帖子变量:pageview