我目前正在编写一个简单的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
)
)
但是我如何使用这些数据,例如,如果我想要回显标题名称,则以下代码将不起作用
echo $_POST['title'];
接下来我应该做什么才能使用它?
PS:我已经在 php 中成功使用了 serialize() ,然后使用了 parse_str() ,但随着我的学习,我只需要针对这个问题给出特定的答案,而不是替代它
最佳答案
简化整个过程并使用serialize()
对整个表单进行表单编码,就像不使用ajax发送表单一样
$.ajax({
url:'...',
method: 'POST',
data: $("#emp-post-form").serialize(),
success: function(data) {
console.log(data);
},
dataType: 'text'
})
然后,表单元素中的所有 name
将直接在 $_POST
中可用
$title= $_POST['title'];
$emp_fName = $_POST['emp-first-name'];
关于php - 如何通过ajax访问json_decode()数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47914737/