Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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
IdealForms-javascript-post不工作_Javascript_Php_Jquery - Fatal编程技术网

IdealForms-javascript-post不工作

IdealForms-javascript-post不工作,javascript,php,jquery,Javascript,Php,Jquery,这是我在下的post函数。当我单击submit时,文本“All Good”会出现,但页面不会刷新或将详细信息发布到register.php页面。您似乎根本误解了AJAX的工作原理。您希望页面刷新,但您使用的代码明确告诉页面不要刷新。首先,这是: onSubmit: function(invalid, e) { e.preventDefault(); $('#invalid') .show()

这是我在下的post函数。当我单击submit时,文本“All Good”会出现,但页面不会刷新或将详细信息发布到register.php页面。

您似乎根本误解了AJAX的工作原理。您希望页面刷新,但您使用的代码明确告诉页面不要刷新。首先,这是:

onSubmit: function(invalid, e) {
            e.preventDefault();
            $('#invalid')
              .show()
              .toggleClass('valid', ! invalid)
              .text(invalid ? (invalid +' invalid fields') : 'All good!');
             if (!invalid) $.post('register.php', this.$form.serialize(), function(response) {  

      }, 'json');
          }
这正是它所说的,它阻止了默认事件。假设这是在表单上,它会显式阻止表单提交。然后您就有了AJAX请求:

e.preventDefault();
正如您在FireBug中确认的那样,这会向服务器发送一个
POST
请求。但是你没有对回应做任何事。您的函数为空:

$.post('register.php', this.$form.serialize(), function(response) {  

}, 'json');
所以。。。你预计会发生什么?一个空函数。。。什么都不做。您可以在FireBug中确认响应是否符合预期,但这是一个完全不同的问题。无论响应是什么,不管它是否正确,如果您不实际显示它,它都不会显示在页面上。请看以下示例:


响应放在
$(“.result”)
元素中。在这段代码中,他们正在显示响应。如果要查看响应,还必须将其显示在某个位置。

JavaScript控制台上是否有错误?当您调试这个时,会发生什么?您是如何确认没有发出POST请求的?控制台是纯白色的。没有错误。我在register.php中放置了echos,它们没有出现。此外,我还添加了if($_POST['submit'])echo。。。;检查邮件是否已提交,但回音从未出现。“清晰的白色”?你在看什么?使用浏览器调试器(如FireBug或Chrome工具)检查错误。您还可以使用它来检查请求,例如AJAX帖子(可能在工具中的某种“网络选项卡”上)。在那里,您可以检查对服务器的实际请求和响应,而不只是假设一切正常。由于您的代码实际上与响应没有任何关系,因此不清楚您是如何确定这不起作用的。我提到的代码是应该将post消息发送到给定php文件的代码。我创建了一个空白文件并键入echo'hi';消息从未出现,因此我确认post数据从未发送。关于白色控制台,我正在查看Chrome中的javascript控制台。此外,OnSubmit会被调用,因为文本都是好的。定义“消息从未出现”。javascript代码对服务器的响应没有任何作用。所以它忽略了从服务器返回的任何“消息”。如果要查看实际的请求和响应,请使用调试工具。您不能仅仅假设您的代码是正确的,并根据观察到的整个系统的行为来确定错误。
function(response) {

}
$.post( "ajax/test.html", function( data ) {
    $( ".result" ).html( data );
});