【发布时间】:2014-07-21 23:23:41
【问题描述】:
我无法检索通过 ajax 提交的表单数据,如下所示:
$( "form" ).on( "submit", function( event ) {
var formData = $(this).serializeArray();
console.log("fomData");
$.ajax({
url: window.location.origin+ "/selfservicemanager/localtmfsetup/local_tmf_setup.php",
type: "POST",
data: JSON.stringify(formData),
success : function (){
alert("success");
}
});
});
我可以看到通过网络发送的数据是这样的:
但是当我尝试在服务器端检索数据时,$_POST 数组为空。
<?php
var_dump($_POST);
die();
?>
array (size=0)
empty
有什么想法吗?我尝试对正在发送的数据进行字符串化,还尝试解码 $_POST 数组,但它需要一个字符串.....
第 2 部分:
是的,我之前尝试过 serialize 函数并开始使用 serializeArray() 函数只是为了看看它是否可以工作。我尝试使用 jquery 的 $.post() 而不是 $.ajax() - 但似乎没有任何效果。但是,我现在认为这是 Chrome 的问题。我刚刚在 Firefox 上进行了测试,一切正常。我还查看了 chrome 调试器中返回的响应,有趣的是,它正在将 $_POST 数组打印为 XML,如下所示:
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b> <i>(size=7)</i>
'weekly_out_of_office' <font color='#888a85'>=></font>
<b>array</b> <i>(size=3)</i>
0 <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'monday'</font> <i>(length=6)</i>
1 <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'wednesday'</font> <i>(length=9)</i>
2 <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'friday'</font> <i>(length=6)</i>
'public_holiday_names' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>''</font> <i>(length=0)</i>
'public_holiday_value' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'6/17/2014'</font> <i>(length=9)</i>
'pay_day' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'1'</font> <i>(length=1)</i>
'final_approval' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'-1'</font> <i>(length=2)</i>
'final_output' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'-6'</font> <i>(length=2)</i>
'file_input_type_1' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'fdsff'</font> <i>(length=5)</i>
</pre>
但是当我尝试通过像
这样的 PHP 访问值时$final_approval = $_POST['final_approval'];
我得到空值
不确定这是什么意思?
【问题讨论】:
标签: php ajax forms serialization