bootgrid自定义加载数据

时间:2017-06-08 04:12:40

标签: php ajax jquery-bootgrid

现在我正在尝试为大学生成一个基于主题的bootgrid表。现在它可以正常显示所有数据。但我想要的是一个高级搜索,根据分支和学期选择主题。我获得分支和学期选项和syfetch.php函数内部执行高级搜索。这是发送函数

$('#semester').change(function(){

            var branch=$("#branch").val();
            var semester=$("#semester").val();

            var formData = new FormData();
            formData.append('branch', branch);
            formData.append('semester', semester);

            var productTable = $('#product_data').bootgrid({

            url: "sylfetch.php",
            ajax: true,
            data:formData,
            type:"POST",
            post: function(data)
            {
                return{
                id: "b0df282a-0d67-40e5-8558-c9e93b7befed"
                    };
            },

            formatters: {
                "link": function(column, row) {
                return "<a href='" + row.slink + "'>Download</a>";
                }



            }
        });
        $('#product_data').bootgrid('reload');
    });

现在每当我尝试读取sylfetch.php中的学期和分支的值时,它就会停止工作

$branch = $_POST["branch"];
$semester= $_POST["semester"];

现在我认为使用ajax发送这些变量时出错,所以请帮帮我。

1 个答案:

答案 0 :(得分:0)

bootgrid配置中的一个参数是post,它是一个函数。此功能允许您向帖子数据添加自定义值。然后像这样使用它:

var productTable = $('#product_data').bootgrid({

    url: "sylfetch.php",
    ajax: true,
    data: formData,
    type: "POST",
    post: function (data) {
        return {
            branch: $("#branch").val(),
            semester: $("#semester").val(),
        };
    },
    formatters: {
        "link": function (column, row) {
            return "<a href='" + row.slink + "'>Download</a>";
        }
    }
});

$('#semester').change(function () {
    productTable.bootgrid('reload');
});

首先要注意的是,每次更改一个学期时都不需要重建整个网格,因为网格中唯一发生变化的是它的数据。所以你保持对网格的引用(正如你已经做的那样)并重新加载它。

每次bootgrid重新加载(例如用户更改为其他页面,或由其他列排序,或单击刷新按钮)时,再次调用发布功能。因此,您可以从 DOM 加载分支和学期。

您之前的代码覆盖了您传递给数据的formData,因为它创建了一个只有id属性的新对象,您可能从某个演示中获得了该对象,并且您没有使用在所有:

return{
    id: "b0df282a-0d67-40e5-8558-c9e93b7befed"
};