反向序列化()-jquery
Posted
技术标签:
【中文标题】反向序列化()-jquery【英文标题】:reverse serialize() -jquery 【发布时间】:2011-09-06 18:22:22 【问题描述】:我使用此代码为 ajax 请求发送了我的数据 (json);
var formdata = $("#customForm").serialize();
type: "post",
dataType: "json",
data: formdata,
在 php 文件中,有可能反转序列化吗?
或者我需要为所有字段制作类似的东西:$pass = $_POST['pass'];
?
谢谢
【问题讨论】:
【参考方案1】:听起来你的“或”陈述正朝着正确的方向前进。数据应该在 $_POST 数组中可用,而无需“反序列化”任何东西。
编辑
尝试命名您的输入字段,以便它们都作为数组进入 post 变量:
<input name="myformdata[first_name]" id="first_name" />
<input name="myformdata[last_name]" id="last_name" />
然后在 post 数组中,您可以访问所有表单数据,例如:
<?php $form_data_array = $_POST['myformdata']; ?>
【讨论】:
@scott,问题在于变量的数量。 命名您的输入字段,以便所有输入字段都进入一个数组。我将以编辑我的帖子为例。 我想这就是你想要的。一旦数据在 PHP 中,您是否希望减少变量的数量?也许我需要澄清你需要什么。很抱歉造成混乱。 谢谢斯科特。我想你明白我假装什么。我只是想避免像这样的变量列表: $pass = $_POST['name']; $pass = $_POST['地址']; $pass = $_POST['country'];...二十个变量 我认为这应该适合你。你能试一试吗?如果您仍有问题,请发表评论,我会尽力提供帮助。【参考方案2】:试试 PHP 的extract
函数:
extract($_POST);
示例:
$_POST = array('var_1' => 1234, 'var_2' => 'another variable');
extract($_POST);
echo $var_1.' '.$var_2;
输出:
1234 另一个变量
适用于您的情况:
提取($_POST);
将导致 $_POST
数组中存在的任何 key => value
对被提取到变量中。
就像对$_POST
数组中的所有变量执行$pass = $_POST['pass']
。
解释:
extract
会将数组中的变量导入到当前符号表中。
它检查每个键以查看它是否具有有效的变量名。它还检查与符号表中现有变量的冲突。
来自PHP Docs (extract)
【讨论】:
但是如果我发送了一个 serializeArray();我需要获取 php 文件中的值。所以你sugest有同样的问题 $_POST = array('var_1' => $_POST['pass']); .我需要为所有变量做同样的事情 不,这是一个例子,在你的情况下你可以简单地做extract($_POST);
- 没有别的。我使用这个示例的目的只是向您展示一些可以运行并获得类似结果的代码。
好的,我明白了,在这种情况下,我只使用一次 POST,而不使用 20 次 $_POST['pass']。谢谢,好点
是的,只要你有办法知道哪些变量被放入$_POST
数组:)。另外,请注意,如果没有第二个参数,extract
将覆盖任何已经用相同名称声明的变量!有关此函数可能的第二个参数的更多信息,请参阅 php 文档。【参考方案3】:
是的。你只需要像$pass = $_POST['pass']
:) 这样的访问。
【讨论】:
但是我有二十多个字段...通常对于一个、两个或三个变量,可以,但是对于二十个有点无聊 它总是很无聊.. 但你可以在任何地方使用$_POST
变量。以上是关于反向序列化()-jquery的主要内容,如果未能解决你的问题,请参考以下文章
python实现DNA序列字符串转换,互补链,反向链,反向互补链
在反向关系上添加序列化程序 - Django Rest Framework
DjangoRestFramework - 如何使用模型序列化程序访问 OneToOneField 反向关系的其他字段?