我在我的CMS
应用程序中相当广泛地使用.post()
。下面的工作代码示例传递13(在我的应用程序中最多)参数到processing.php
文件,该文件工作良好。
当需要传递更多参数时,我简单地使用了action
形式属性,它也工作得很好。
然而,我有一个应用程序,需要传递38个变量,包括大字符串,但同时对action file
执行检查,如果检查失败,我需要触发js confirmation alert
来继续或取消。
我不太确定如何从processing.php
文件中触发js confirmation alert
,以及如果用户取消,如何返回原始文件并将信息完整地输入到表单中。
如果我使用.post()
,我确实知道如何实现这一点。
通过以下所述的.post()
发送给processing.php
的参数数量是否有任何限制,或者我应该采取其他方法来处理上述问题?如果是的话,你有什么建议?
工作代码示例
// code element
$( "#updateDefaultCodeButton" ).click(function(){
var url = $('#updateDefaultCodeURL').val();
var code_font_family = $('#code_font_family').val();
var code_font_color = $('#code_font_color').val();
var code_font_weight = $('#code_font_weight').val();
var code_font_size = $('#code_font_size').val();
var code_bg_color = $('#code_bg_color').val();
var code_pad_t = $('#code_pad_t').val();
var code_pad_r = $('#code_pad_r').val();
var code_pad_b = $('#code_pad_b').val();
var code_pad_l = $('#code_pad_l').val();
var code_w_pad_t = $('#code_w_pad_t').val();
var code_w_pad_r = $('#code_w_pad_r').val();
var code_w_pad_b = $('#code_w_pad_b').val();
var code_w_pad_l = $('#code_w_pad_l').val();
var postit = $.post( url, {
code_font_family:code_font_family,
code_font_color:code_font_color,
code_font_weight:code_font_weight,
code_font_size:code_font_size,
code_bg_color:code_bg_color,
code_pad_t:code_pad_t,
code_pad_r:code_pad_r,
code_pad_b:code_pad_b,
code_pad_l:code_pad_l,
code_w_pad_t:code_w_pad_t,
code_w_pad_r:code_w_pad_r,
code_w_pad_b:code_w_pad_b,
code_w_pad_l:code_w_pad_l
});
postit.done(function( data ) {window.location.replace("../generator.php?returnto=manage/global-styles-manage.php");});
});
php.ini包含post_max_size
和max_input_vars
,这两者都可以影响您可以发布到一个页面的数量
http://php.net/manual/en/ini.core.php ini.post-max-sizehttp://php.net/manual/en/info.configuration.php ini.max-input-vars
如果您发现自己超过了限制(这将在错误日志中生成警告),您可以调整两者。
38个变量应该是好的- max_input_vars
默认为1000,post_max_size
默认为2MB(我认为),所以你的文本字符串必须是非常大。
JQuery Ajax本身没有任何限制。请求大小在服务器上是有限的,但是通过不同的配置取决于您的环境。
Apache:-
LimitRequestBody
,默认为2Gb左右,64位可能更大,检查错误日志了解详细信息。
-
post_max_size
与POST大小直接相关 -
upload_max_filesize
可能不相关,不确定 -
max_input_time
,如果POSt时间太长 -
max-input-nesting-level
如果你的数据是一个有很多子级别的数组 -
max_execution_time
,但很确定不是 -
memory_limit
,因为你可能达到超过子进程允许内存的大小 -
max_input_vars
,如果你的数据数组有很多元素
摘自:https://stackoverflow.com/a/9691395/2853903