我的问题可能很基本,但问题是:
我有一个javascript函数,它通过ajax发送一个数组来处理一些信息......
var second = $('form.contact').serialize();
var arry = {keystatus: varId, keyname: second}
在php中,我添加了通过ajax发送的数据并编写了一个echo来查看ajax成功,通过console.log显示。
我能得到什么:
我的php脚本:
$name = strip_tags($_POST['keystatus']);
$email = strip_tags($_POST['keyname']);
$teste['nome'] = $name;
$teste['email'] = $email;
echo json_encode($teste);
我需要找到一种方法来分开,例如:
$_POST['keyname']['nome'] -> (in this example) discovery
$_POST['keyname']['email'] -> discovery@discovery.com
$_POST['keyname']['usuario'] -> discovery
答案 0 :(得分:1)
您当前正在将表单数据作为序列化字符串添加到您发送的对象中。这就是它看起来如此的原因。
您可以使用所有数据构建新对象,并使用ajax发送该对象:
var data = {
keystatus: varId,
keyname: {
nome: $("#the_nome_input").val(),
email: $("#the_email_input").val(),
usuario: $("#the_usuario_input").val()
}
};
或者你可以在表单中添加额外的值(因为它似乎只是一个)作为隐藏的输入字段:
// Add this to the form
<input type="hidden" value="" name="keystatus" id="keystatus" />
// In your js, add
$("#keystatus").val(varId); // Sets the value
var data = $("form.contact").serialize();
...现在您可以使用ajax将数据发送到您的后端。
如果您想获取这样的数据:$_POST['keyname']['nome']
并使用第二种选择,则需要将输入字段重命名为:name="keyname[nome]"
,name="keyname[email]"
和{{1} }。
这将为您提供正确的数据结构和值。