【问题标题】:JQuery autosaving for POST form to JSON field in PHP databaseJQuery自动保存POST表单到PHP数据库中的JSON字段
【发布时间】:2013-03-26 09:40:48
【问题描述】:

我最初使用以下 PHP 代码将表单上的所有项目保存在表格的“TEXT”字段中:

$the_field = json_encode($_POST);

现在我必须让它自动保存 POST 表单(进行更改时)。

$.post("ajax.php?"+$("#form_id").serialize(),
                          { id: '<?php echo $id;?>' },
                     function(data){});

ajax.php 包含以下代码:

$the_field = json_encode($_GET);

这与最初使用 json_encode 和 $_POST 的结果相同。

在我的服务器上似乎有 100 个 $_GET 项目的限制,包括数组中的项目,无论这些项目是一个字符长还是 50+ 个字符长。

这个限制适用于原始页面,也适用于 ajax.php

我想知道是否有一种替代方法在涉及紧凑代码时没有这种限制性限制。它应该允许数组......例如name="var['.$x.']['.$y.']"

【问题讨论】:

    标签: jquery json post get


    【解决方案1】:

    您可以使用 javascript serialize() 将任何对象编码为 json。

    看看JSON.stringify()parse_str()

    根据 OP 请求进行编辑:

    解决办法:

    $.post("ajax.php", { data: $("#the_form").serialize()}
    

    对于 ajax.php:

    parse_str($_POST['data'], $data_obj);
    

    【讨论】:

    • 我使用 $("#form_id").serialize() 来序列化表单....有没有办法将表单转换为 json?例如像 JSON.stringify($(#form_id)) 之类的东西?
    • 当我在 Google Chrome 控制台中尝试 JSON.stringify($("#the_form").serialize()) 时,我得到了 ""vars%5B1%5D%5B1%5D=X&vars%5B1 %5.....5B10%5D=X&test=X""... 它几乎与 $("#the_form").serialize() 相同,只是它在开头有一组额外的双引号和最后
    • 正确的 json 类似于 {"x":[1,2,3],"y":[4,5,6],"z":"test"}... 不是""x=1&y=2&z=3""
    • 我的问题是如何将表单转换为 json ......我原来的方法是 json_encode($_POST);但我只能在页面加载时弄清楚如何做到这一点。第二种方法使用 GET 和序列化,但这似乎有 100 个项目的限制。我想知道是否有一种没有 100 项限制的动态方式(例如 ajax)。
    • 解决方案:$.post("ajax.php", { data: $("#the_form").serialize()},.... 对于 ajax.php:parse_str($_POST ['data'], $data_obj);... 然后可以使用 json_encode。它非常占用 CPU,但它没有 100 项限制。你能把它作为答案发布,以便我打勾吗?跨度>
    【解决方案2】:

    不过你可以试试json:

    $.post("ajax.php", { id: '<?php echo $id;?>', data: $("#form_id").serialize()}, function(data){
       console.log(data);
    }, "json");
    

    【讨论】:

    • 由于某种原因,“json”根本不起作用。如果没有“json”,它会记录到控制台。 ajax.php 包含
    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多