如何发布数据使用jQuery数据表全表如何发布数据使用jQuery数据表全表(How to post

2019-05-12 07:24发布

我有一个表使用jQuery数据表和分页工作

我有超过300书记官处的这50是在每一页上最大。 我每次从页面切换到其他250名书记官处从DOM删除页面,所以当我提出并执行后到我的控制,我只得到了50款这是我目前的网页上会名单。

如何访问其他的250,或者告诉表格给他们呢? 我已经搜查,我已阅读,这是分页的正常行为。 但是,你们如何解决它?

Answer 1:

原因

当使用数据表插件中的分页只有当前页面排在DOM性能和兼容性存在。 因此,当您提交表单,只有当前页面的表单控件值被提交。

方案1:直接提交表单

关键是要打开窗体元素从比目前的其他页面进入<input type="hidden">提交表单之前。

var table = $('#example').DataTable();

// Handle form submission event
$('#frm-example').on('submit', function(e){
   var form = this;

   // Encode a set of form elements from all pages as an array of names and values
   var params = table.$('input,select,textarea').serializeArray();

   // Iterate over all form elements
   $.each(params, function(){
      // If element doesn't exist in DOM
      if(!$.contains(document, form[this.name])){
         // Create a hidden element
         $(form).append(
            $('<input>')
               .attr('type', 'hidden')
               .attr('name', this.name)
               .val(this.value)
         );
      }
   });
});

见jQuery的数据表:如何提交所有网页表单数据-直接提交更多细节和例子。

方案2:通过Ajax提交表单

另一个解决方案是通过Ajax提交表单。

var table = $('#example').DataTable();

// Handle form submission event
$('#frm-example').on('submit', function(e){
   // Prevent actual form submission
   e.preventDefault();

   // Serialize form data
   var data = table.$('input,select,textarea').serialize();

   // Submit form data via Ajax
   $.ajax({
      url: '/echo/jsonp/',
      data: data,
      success: function(data){
         console.log('Server response', data);
      }
   });
});

见jQuery的数据表:如何提交所有网页表单数据-通过Ajax提交的更多细节和例子。

笔记

请注意,这两个解决方案将只在客户端处理模式。

链接

见jQuery的数据表:如何提交所有网页表单数据的更多细节。



文章来源: How to post data for the whole table using jQuery DataTables