Javascript 使用jquery提交表单时获取返回(不刷新)

Javascript 使用jquery提交表单时获取返回(不刷新),javascript,php,jquery,Javascript,Php,Jquery,在我的页面上提交表单时,我有一个调用PHP页面的代码(如下所示): 它很好用。它调用action.php并显示一个类似suces!!的警报 我的问题是:我想从php文件中得到一个返回 例如。。如果有问题,则返回false 并避免表单提交、显示和错误警报 非常感谢,伙计们。在您的php文件中,使用类似这样的内容,您将执行error函数。我相信所有4xx和5xx代码都能工作 header('HTTP/1.0 404 Not found'); exit; 在这种情况下,最好让de Php返回一个JS

在我的页面上提交表单时,我有一个调用PHP页面的代码(如下所示):

它很好用。它调用action.php并显示一个类似suces!!的警报

我的问题是:我想从php文件中得到一个返回

例如。。如果有问题,则返回false

并避免表单提交、显示和错误警报


非常感谢,伙计们。

在您的php文件中,使用类似这样的内容,您将执行
error
函数。我相信所有4xx和5xx代码都能工作

header('HTTP/1.0 404 Not found');
exit;

在这种情况下,最好让de Php返回一个JSON字符串,该字符串包含一条消息,其中包含一个success或一个errorcode

然后,在成功方法中,您将分析数据变量。根据返回对象中的成功代码,您将在表单中显示感谢信息或错误。

  • 您的逻辑必须写在php文件中
  • 在提交表单时,数据将进入action.php文件
  • 在那里,您可以只回显json数据
  • 或者简单的“成功”
  • 在ajax中执行此操作

使用Ajax时,由于提交表单和Ajax调用是异步的,所以不可能向表单返回false并显示错误

相反,如果ajax成功,您可以在单击按钮并提交表单时调用ajax

$(document).ready(function(){
    $('#ajaxButton').on('click',function(e) {

      $.ajax({
       url:'action.php',
       data:$(this).serialize(),
       type:'POST',
       success:function(data){
           console.log(data);
           alert('success!!');
          //submit your form here
          $('#formId').submit();
           },
           error:function(data){
           alert('error');
          }
       });
     e.preventDefault();
   });
});

success
回调的
data
参数是PHP的响应,因此您可以检查错误。使用ajax,您不能这样做,因为这是异步调用。@BhushanKawadkar谁告诉您???@BlankHead,我不知道是否有提交表单的方法,在提交表单中调用ajax,您可以等到ajax返回successfull/not。请你解释一下怎么做好吗。我不熟悉ajax和表单提交。
success:function(data){ 
       if(data == "success")
         alert("success");
       else
         alert("Fail");
     } 
$(document).ready(function(){
    $('#ajaxButton').on('click',function(e) {

      $.ajax({
       url:'action.php',
       data:$(this).serialize(),
       type:'POST',
       success:function(data){
           console.log(data);
           alert('success!!');
          //submit your form here
          $('#formId').submit();
           },
           error:function(data){
           alert('error');
          }
       });
     e.preventDefault();
   });
});