如何将jQuery Form POST更改为JSON对象并将其发布?

时间:2014-10-22 02:25:01

标签: javascript php jquery ajax json

我正在为SugarCRM构建一个模块,供许多人使用。早期我在使用PHP丢失部分POST保存数据时遇到了问题,我得知问题是由{INRI设置max_input_vars

引起的

一旦我增加了为max_input_vars设置的值,一切都再次完美。

我能够使用max_input_vars文件设置.htaccess值。我准备好你不能用PHP函数ini_set()

设置这个值

我主要担心的是这个模块将在许多不同的服务器上使用,因为它将被许多人使用。

我需要编写一个解决方案,要求用户什么都不做,并且我的模块仍然可以继续正常运行。

在另一篇文章中,用户建议我使用jQuery AJAX POST将已保存此数据的HTML表单更改为我的后端PHP脚本。

他说我应该通过将JSON对象结束到我的PHP后端脚本而不是大量的POST Vars来更改它以保存数据。

有没有其他人认为这是一个很好的解决方案?

这是我现在处理SAVE的当前前端代码....

function ajaxSaveTasks(){
    window.unsavedChanges = false;

    // Display a message to the user that we are Saving
    ajaxStatus.showStatus('Saving Task Changes');

    var url = "index.php?module=apoll_Web_Projects"; // the script where you handle the form post.
    //SUGAR.ajaxUI.showLoadingPanel();
    jQuery('#project_tasks').showLoading(showLoadingSettings);

    $.ajax({
           type: "POST",
           url: url,
           data: $("#editTasksForm").serialize(), // serializes the form's elements.
           success: function(data)
           {
               //alert(data); // show server response
               //SUGAR.ajaxUI.hideLoadingPanel();
               hideTaskUnSavedChangesHeaderBar()
               jQuery('#project_tasks').hideLoading();
           }
         });
    ajaxStatus.hideStatus();
};

其他用户提到,如果修改此代码以使用JSON POST我的FORM,那么我可以完全解决max_input_vars问题。如果我理解正确的话,他说的不是我发送的1000多个Form POST变量,而是将它作为1个变量发送,而变量中包含一个巨大的JSON字符串......听起来不错吗?

如果这听起来像是一个很好的解决方案,那么有人可以告诉我如何实现这一目标吗?

我的FORM是批量添加和编辑项目任务数据库记录的页面,因此它可能非常大并且在数据库中有数百个任务记录要更新。

在上面的代码中,您可以看到它只是运行$("#editTasksForm").serialize()来获取所有表单字段。

0 个答案:

没有答案