#3编辑=>原因!
因此我发现导致问题的原因是 Datatable 。即使我不使用分页,Datatable也限制了表单可以发布的行数。
jQuery('#tblStats').DataTable( {
dom: 'ft',
ordering: false,
jQueryUI: true,
scrollY: "400px",
deferRender: true,
scroller: true,
scrollCollapse: true,
language: {
search: "<%= t('app.bouton.filter') %>",
infoEmpty: "<%= t('app.datetables.sZeroRecords') %>"
}
});
关于如何避免该限制并继续使用Datatable的任何想法?
我已经尝试过了,但是还是一样: https://www.gyrocode.com/articles/jquery-datatables-how-to-submit-all-pages-form-data/
谢谢!
初始消息
我很难确定提交表单时为什么缺少一些参数。
在表单内部有一个动态填充的表。每行发送10个参数。 该提交适用于少量数据,但似乎对1898个参数有限制。有时前5或6行的参数丢失了,有时最后几行的参数丢失了。这是完全随机的。但是限制似乎始终是相同的:发送的参数不超过1898。
我完全没有错误。只是不发送参数。这在生产服务器和开发服务器中都在发生。服务器不同,操作系统也不同。
Rails版本为2.3.18。 Ruby版本是1.8.7。
有人知道发生了什么吗?
在此先感谢您的帮助!
#1编辑
按照Oshanz的建议,我找到了乘客的配置文件。就我而言:
$>/home/alberto/.rvm/gems/ree-1.8.7-2012.02@dev/gems/passenger-4.0.37/resources/templates/standalone/config.erb
在文件中,http {}中有一个参数“ client_max_body_size”。默认值为1048m。即使看起来足够大,我也将其更改为2048m。
很遗憾,此操作不起作用,结果仍然相同。
#2编辑
所以我仍然有问题。
正如我在下面评论的,我使用的是form_remote_tag
,其中包含一个动态填充的表。这将在后台使用XMLHttpRequest提交,而不是定期重新加载POST安排。
生成:
<form action="/wizi_comm/stats" method="post" onsubmit="Element.hide('err');Element.show('spinner');; new Ajax.Request('/wizi_comm/stats', {asynchronous:true, evalScripts:true, onComplete:function(request){Element.hide('spinner');Element.show('mainBd');}, parameters:Form.serialize(this)}); return false;">
我也使用form_tag
进行了测试,结果是相同的。某些参数只是不发送。
<form action="stats" method="post">
我没有运气检查乘客的配置文件。 我确实确实需要一些想法:
您认为这是由于某处的配置所致吗?
您认为我应该更改提交表单的方式吗?
在此先感谢您的帮助!
答案 0 :(得分:0)
解决方案
我对基于Datatable的解决方案rows().data()做了一些测试。我仍然缺少一些行。我也从API中得到一些错误。
在这一点上,我认为该项目上的其他JS库正在干扰jQuery。有空的时候我会研究的。
我最后要做的是删除表上Datatable的初始化并使用纯CSS解决方案进行滚动。如果有人感兴趣,我的解决方案将基于此:
Pure CSS solution scroll table
table.scroll {
width: 716px; /* 140px * 5 column + 16px scrollbar width */
border-spacing: 0;
border: 2px solid black;
}
table.scroll tbody,
table.scroll thead tr { display: block; }
table.scroll tbody {
height: 100px;
overflow-y: auto;
overflow-x: hidden;
}
table.scroll tbody td,
table.scroll thead th {
width: 140px;
border-right: 1px solid black;
}
table.scroll thead th:last-child {
width: 156px; /* 140px + 16px scrollbar width */
}
table.scroll thead tr th {
height: 30px;
line-height: 30px;
/*text-align: left;*/
}
table.scroll tbody { border-top: 2px solid black; }
table.scroll tbody td:last-child, thead th:last-child {
border-right: none !important;
}
再次感谢您的帮助!