我正在使用我在上一个网站中使用的自己的php代码基础构建一个网站但是在2个月之后,我使用相同的基础并且正在发生接收PHP文件中的数据以使用jQuery处理信息的事情ajax和我真的不明白错误:
当我发送数据时,在Google Chrome中的表单数据选项中,开发人员工具仅显示带有数据的字段文本,但是当我使用var_dump()打印此POST数据时,将打印所有这些文本:
关于Javascript代码,这是一个简单的ajax代码:
var doFunction = function($form)
{
var form_data = $form.serialize();
var data = {
form: form_data,
tag: 'save'
};
$.ajax({
url: 'routes.php',
type: 'post',
dataType: 'json',
data: data
})
.done(function(data) {
})
.fail(function(jqXHR) {
})
.always(function() {
});
return false;
}
PHP代码只是一个var_dump($ _ POST);只是检查数据。关于错误的简单解释就像我发送这些数据一样:
Name: 'My Name',
Tag: 'save'
PHP代码正在显示
My name: 'Name',
save: 'Tag'
或类似的东西。
我希望你能帮助我。
答案 0 :(得分:0)
您错误地将数据发送给PHP。这是你搞砸的部分:
var data = {
form: form_data,
tag: 'save'
};
而不是这样做,它将起作用:
var data = form_data + "&tag=save"
基本上发生的事情是你混合了两种不同的格式。 serialize函数返回一个字符串,其中键值对由&符号(&)分隔。但是,当您添加标记时:"保存",您正在使用javascript对象。
既然你把它们混合起来,你只需要发送2个post变量到你的php脚本。 $ _POST [' form']这是一个字符串,其键值对由&符号和&和$ _POST [' tag']分隔,设置为"保存& #34 ;.
您的PHP脚本看起来像是在期待" nombre"作为一个不存在的POST变量,并发出通知。