PHP AJAX Json发送对象错误
我创建了这个对象,然后使用ajax发送数据抛出方法POST:PHP AJAX Json发送对象错误,php,ajax,Php,Ajax,我创建了这个对象,然后使用ajax发送数据抛出方法POST: var workerEdit = { id: id, name: $('#workers_response input[name="name"][data-id="gear-'+id+'"]').val(), photo: $('#workers_response input[name="pas-scan"][data-id="gear-'+id+'"]')[0].files[0], bibliog
var workerEdit = {
id: id,
name: $('#workers_response input[name="name"][data-id="gear-'+id+'"]').val(),
photo: $('#workers_response input[name="pas-scan"][data-id="gear-'+id+'"]')[0].files[0],
bibliography: $('#workers_response textarea[name="bibliography"][data-id="gear-'+id+'"]').val(),
history: $('#workers_response textarea[name="history"][data-id="gear-'+id+'"]').val(),
salary: $('#workers_response input[name="salary"][data-id="gear-'+id+'"]').val()
}
在php中,我使用:
$.ajax({
type: "POST",
url: "/admin-workers/edit_worker.php",
data: 'edit_worker='+JSON.stringify(input_data),
success: function(data) {
var obj = JSON.parse(data);
if(obj.error === undefined) {
console.log(obj);
if(obj.data === null) {
alert("Успех");
}
}
else {
alert("Ошибка: "+obj.error);
console.log(obj);
}
},
});
为什么php不能获取对象?您正在使用变量workerEdit创建一个对象,但是您正在从输入数据发布数据。由于变量名不正确,您似乎没有发布任何数据。您的数据未正确序列化。您不能只是将JSON映射字符串化并将其发布为
'edit\u worker='+JSON.stringify(input\u data)
它应该如下所示:
$edit_worker = json_decode($_POST['edit_worker']);
$test = $edit_worker->name;
在后端,您将通过其键提取单个值:
key1=value1&key2=value2&key3=value3
您的验证可能需要包含的不仅仅是trim,这取决于数据源是什么以及您正在使用它做什么,但这是另一个讨论 在浏览器的调试工具中,AJAX请求的实际细节是什么?这是邮寄请求吗?数据是什么样子的?在服务器端代码中,如果
$\u POST['edit\u worker']
不包含有效的JSON,它是否包含任何内容?它的原始内容是什么?显示完整的代码,这两行ajax代码不够。可能数据应该是键值对象,而不是字符串。查看请求。检查开发工具中的网络选项卡,查看请求的状态…添加了更多信息
If ($_SERVER['REQUEST_METHOD'] === 'POST') {
$val1 = ( isset($_POST['val1']) ) ? trim($_POST['val1']) : '';
$val2 = ( isset($_POST['val2']) ) ? trim($_POST['val2']) : '';
// etc. etc.
}