我的问题是用ajax [ serializeArray()]从元素输入表单发送数据,但没有运气,因为parse_str()总是返回NULL值,但实际上数据是存在的
所以我是新的PHP的东西,我已经在互联网上搜索这个问题。目前的结果并不针对我的情况。
这只是一页代码,运行在PHP 8.2下,
代码的结构就像一个普通的输入表单,有一个表,有3个元素输入和1个提交按钮,当然每个元素的id。它也用form标签 Package ,ID是'frmdata'。
总之,表单和js验证工作正常,当输入为空时弹出显示。
在最后一个条件是else之后,所有的输入都被填满
let data = $('#frmdata').serializeArray();
在上面一行之后尝试找出变量中的内容[第一个警报]:
alet(data);
警报消息返回如下:**[object:object],[object:object],[object:object]**这正常吗?消息不返回我们在这3个元素中输入的值。
下一行是在一个alert块中,我写如下[第二个alert]:
$.ajax ({
url:"tes.php",
method:"post",
data:{'data':$.param(data)},
success:function(data) {
alert(data);
window.location.reload();
}
});
对于第二个警报,内容只是原始HTML代码。
对于上述问题,parse_str()语法始终显示NULL值
添加一些有关问题的信息。
因此,当aps发送数据到php,我写下面的代码
<?php
If(isset($_POST)) {
$_POST = parse_str($_POST['data'],$_POST);
echo'<pre>';
print_r($_POST);
exho'</pre>;
die();
}
?>
浏览器返回null值
1条答案
按热度按时间moiiocjp1#
通常使用jQuery将表单数据发送到服务器进行处理的最简单方法是使用serialize。然后,如果您在POST请求中将其发送到PHP,则所有序列化字段都将在
$_POST
数组中可用,就像您使用常规表单提交一样。因此,您不需要
parse_str
或serializeArray
或$.param
。你把事情弄得太复杂了只是改变
数据:
在
$.ajax
请求代码中,并删除这一行: