【发布时间】:2017-12-20 21:39:48
【问题描述】:
我目前正在编写一个简单的 ajax 脚本来练习我的 ajax 技能,我正在使用 serializeArray() 方法通过 ajax 提交表单,我能够成功通过它但无法执行任何操作数据。 这是我目前使用的 ajax 脚本
var submit_post = $("#submit-post");
$(submit_post).on('click',function (e)
{
e.preventDefault();
$.ajax(
{
method:'POST',
data:
{
form:JSON.stringify($("#emp-post-form").serializeArray())
},success:function(data)
{
console.log(data);
},dataType:'text'
})
})
在后端我以以下方式处理数据
if(isset($_POST['form']))
{
$form_data = [];
$form_data = json_decode(stripslashes($_POST['form']),true);
var_dump($form_data);
}
当我 var_dump() 发布数据时,以下是我的数据格式
Array
(
[0] => Array
(
[name] => emp-id-list
[value] => 1248
)
[1] => Array
(
[name] => emp-first-name
[value] => John
)
[2] => Array
(
[name] => emp-last-name
[value] => King
)
[3] => Array
(
[name] => title
[value] => Post title
)
[4] => Array
(
[name] => post-content
[value] => Some Post
)
)
但是如果我想要回显标题名称,我该如何使用这些数据,下面的代码将不起作用
回显 $_POST['title'];
接下来我应该怎么做才能使用它?
PS:我已经成功使用 serialize(),然后在 php 中使用 parse_str(),但据我所知,我只需要回答这个问题,而不是替代它 p>
【问题讨论】:
-
你需要告诉 PHP 你想要哪个名称/值。所以
$form_data[0]['name']将是“emp-id-list”,$form_data[3]['value']将是“帖子标题” -
这就是我不使用 serializeArray() 的原因,在 PHP 端使用它是一个烦人的结构