Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQueryAjax向PHP提交表单时,返回的数据为空_Php_Jquery_Ajax_Forms_Preventdefault - Fatal编程技术网

使用jQueryAjax向PHP提交表单时,返回的数据为空

使用jQueryAjax向PHP提交表单时,返回的数据为空,php,jquery,ajax,forms,preventdefault,Php,Jquery,Ajax,Forms,Preventdefault,当我运行下面的代码时,返回的“数据”是一个空字符串“[]”。(至少通过Chrome控制台查看器查看) 如果我注释掉JS中的“event.preventDefault();”行,我会得到一个页面重新加载,正如预期的那样,以及一个JSON字符串,其结果通过JSONLint。我知道PHP正在工作,因为我正在将新插入到mySQL数据库中,返回值是有意义的 即使“数据”返回为空,一切似乎都正常运行。。。(也就是说,我得到的是第一秒和第二秒的console.log,后跟空字符串。)我就是无法在JS上下文中得

当我运行下面的代码时,返回的“数据”是一个空字符串“[]”。(至少通过Chrome控制台查看器查看)

如果我注释掉JS中的“event.preventDefault();”行,我会得到一个页面重新加载,正如预期的那样,以及一个JSON字符串,其结果通过JSONLint。我知道PHP正在工作,因为我正在将新插入到mySQL数据库中,返回值是有意义的

即使“数据”返回为空,一切似乎都正常运行。。。(也就是说,我得到的是第一秒和第二秒的console.log,后跟空字符串。)我就是无法在JS上下文中得到返回的“data”值

我对网络开发有点陌生,不是编程。。。但是有人发现新手犯的错误吗?我已经阅读了大约12个类似的问题,并尝试了很多东西,但没有任何帮助

提前谢谢

$(文档).ready(函数(){
$('form')。提交(函数(事件){
var formData={
'firstName':$('input[name=firstName]')。val(),
'lastName':$('input[name=lastName]')。val(),
'email':$('input[name=email]')。val(),
'password':$('input[name=password]')。val()
};
$.ajax({
键入:“POST”,
url:'createaccount.php',
数据:formData,
数据类型:“json”
})
.完成(功能(数据){
控制台日志(“第二”);
控制台日志(数据);
});
控制台日志(“第一”);
event.preventDefault();
});
});
输入{
边界半径:5px;
边框宽度:1px;
保证金:2倍;
}

加入网站
名字:
姓氏:
电子邮件:
密码:

在对表单数据执行任何操作之前,PHP代码会检查是否设置了
$\u POST['submit']
,但您从未在
formData
中设置它。尝试:

    var formData = {
        'firstName': $('input[name=firstName]').val(),
        'lastName': $('input[name=lastName]').val(),
        'email': $('input[name=email]').val(),
        'password': $('input[name=password]').val(),
        'submit': 'on'
    };

Ajax有一个名为
succes
的选项。它将在ajax调用返回正输入时立即执行。将
done
中的项目放在那里。我认为您不能在ajax调用之外调用数据线,因为您就是这么做的php代码现在就在那里。@Indrasinh Bihola我放了一个formData的console.log,它被正确填充了。请求到达PHP,并进入数据库。我只是没有将响应文本返回到数据变量中。@Dorvalla我已经尝试了.done(函数(数据))和success:function(数据,我没有从数据中获取信息。但他说他正在获取插入。我不相信他。如果他不添加该字段,则该
if
中的任何代码都不会被执行。@Barmar非常感谢你查看我的断言。我对成功项中没有数据有问题。当你唱html文章,因为它确实被填写。我错误地认为它也是通过ajax进入的。嗯……计算机完全按照你告诉它的做。我假设的插入在我返回html表单文章时起作用,而不是ajax。如果我能给你两张绿色支票,我会的。谢谢你。