php - 何时使用序列化与常规 POST

标签 php jquery

我最近问了一个部分回答的问题,但我希望有人能解释得更清楚一点。它与 PHP 和序列化函数有关。

所以我有一个包含 12 个字段的表单,所有字段都有名称。传统上,我只会使用 POST 方法,将它们发送到 PHP 页面,然后将它们提供到数据库中。

今天我偶然发现了 serialize 方法,但在使用它之后,它似乎没有做任何常规 POST 语句会做的事情。例如,如果我想使用序列化,我会执行以下操作:

var formData = $('#contForm').serialize();
$.post('functs.php',formData,dispAdd);

然后打印一个我会使用的值

echo $_POST['value_name']

我看到发生的事情是,无论有没有序列化,我都会得到相同的结果。我在这里遗漏了什么吗?

最佳答案

The .serialize() method creates a text string in standard URL-encoded notation. It operates on a jQuery object representing a set of form elements. The form elements can be of several types. Read more.

.serialize() 在您通过 AJAX 请求发送数据时使用。这与使用提交按钮提交表单相同。唯一不同的是当你使用 AJAX 时它不会刷新页面。这就是为什么即使在使用 AJAX 时使用提交按钮或 .serialize() 提交表单也会得到相同的结果。

.serializeArray()可以替代 .serialize()

记住如果您不使用.serialize(),您必须像上面评论中提到的@Akam 那样手动创建键值对。

最后

何时使用序列化 <-- 当您使用 AJAX 发布数据时

When regular POST <-- 当你使用提交按钮发布数据时

关于php - 何时使用序列化与常规 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353845/

相关文章:

php - 根据数据库验证用户并重定向到另一个 html 页面的问题

php - 需要添加对静态 HTML 站点的搜索

php - .php 文件被替换为 .php.suspected - Wordpress AWS

jquery - jeasyui ajax 需要帮助

javascript - 如何用js使下拉子菜单的宽度等于父div

javascript - 当 JavaScript 执行更改时,jQuery 捕获下拉列表的更改事件

php - not in function PHP 中的多个条件

php - Laravel Auth 自定义字段

jquery - 如何停止主题标签的默认点击行为?

Jquery 热图着色