Теперь я пытаюсь сгенерировать основанную на предмете таблицу загрузочной сетки для колледжа. Теперь она отлично работает для отображения всех данных. Но то, что я хочу, это расширенный поиск, где предмет выбирается на основе ветви и семестра. Я получаю параметры ветви и семестра и внутри функции 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, поэтому, пожалуйста, помогите мне.
Одним из параметров в конфигурации 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');
});
Первое, на что следует обратить внимание, — вам не нужно перестраивать всю сетку каждый раз, когда вы меняете семестр, поскольку единственное, что изменяется в сетке, это ее данные. Таким образом, вы сохраняете ссылку на сетку (как вы уже делали) и просто перезагружаете ее.
Каждый раз, когда загрузочная сетка перезагружается (например, пользователь перешел на другую страницу, заказал другой столбец или нажал кнопку обновления), что функция почты называется снова. Таким образом, вы можете загрузить ветвь и семестр из вашего DOM там.
Ваш предыдущий код переопределял formData
вы передавали данные, потому что это создавало новый объект с помощью только id
свойство, которое вы, вероятно, получили из некоторой демоверсии и не используете вообще:
return{
id: "b0df282a-0d67-40e5-8558-c9e93b7befed"};
Других решений пока нет …