繁体   English   中英

Ajax成功消息不起作用

[英]Ajax success message is not working

我想提交表单而不刷新页面,并且在成功重置表单的情况下也要在表单下显示成功/错误消息。 但是我想我在ajax代码中做错了事,php可以正常工作。 阿贾克斯:

$("#usignupform").validate({
    submitHandler:function() {
        var $form = $(form),
        $messageSuccess = $('#mesSuccess'),
        $messageError = $('#mesError');
        $.ajax({
            url: "investor-invite.php",
            type: "POST",
            data: $(this).serialize(),
            complete: function(data) {
                if (data.status == 'success') {
                    $messageSuccess.removeClass('hidden');
                    $messageError.addClass('hidden');

                    // Reset Form
                    $form.reset();

                    return;

                } else {
                    $messageError.removeClass('hidden');
                    $messageSuccess.addClass('hidden');
                }
            }
        });
        return false;
    }
});

PHP:

function NewUser(){ 
    $data = mysql_query($query)or die(mysql_error()); 

    if($data){
        $response_array['status'] = 'success';  
    } else {
        $response_array['status'] = 'error';  
    }
}
if(isset($_POST['submit'])){ 
    NewUser();
    }

HTML:

<form>
    --all fields--

    <button type="submit" name="submit" id="submitButton">
    Request Invite</button>
    <div class="alert alert-success hidden" id="mesSuccess">
        <strong>Success!</strong> Your message has been sent to us.
    </div>
    <div class="alert alert-danger hidden" id="mesError">
        <strong>Error!</strong> There was an error sending your message.
    </div>      
</form>

您需要在php页面上回显内容,这将返回成功消息。如果php文件或任何目标文件中包含html或某些打印数据,则Ajax调用将获得响应。

这样尝试

    function NewUser(){ 
         $data = mysqli_query($query)or die(mysql_error()); 

         if($data){
            $response_array['status'] = 'success';  
               }else {
            $response_array['status'] = 'error';  
          }
return $response_array;
        }
    $data=NewUser();
    echo json_encode($data);

并更新ajax功能

$("#usignupform").validate({
                  submitHandler:function() {
                  var $form = $(form),
                   $messageSuccess = $('#mesSuccess'),
                   $messageError = $('#mesError');
             $.ajax({
                   url: "investor-invite.php",
                   type: "POST",
                   data: $(this).serialize(),
                    dataType: 'json',                  //add this to get the json response
                   complete: function(data) {
                        if (data.status == 'success') {

                        $messageSuccess.removeClass('hidden');
                        $messageError.addClass('hidden');

                        // Reset Form
                        $form.reset();


                    return;

                } else {

                    $messageError.removeClass('hidden');
                    $messageSuccess.addClass('hidden');
                }
            }
  });
  return false;
}
});

更新,请从您的代码中删除Depricated mysql_ *并使用mysqli_ *pdo查询

打印语句和JSON标头在哪里

<?PHP
header('Content-Type: application/json');
echo json_encode($data);

尝试这个,

 $.ajax({
                type: "post",
                url : "ajax.php",
                dataType: 'json',
                data:{ name : name,claass : claass,mobile : mobile},
                success : function(data){
                    alert("success");
                }
            },"json");

在php中

$arr= ['fname'=>$name,'classs'=>$class,'mobile'=>$mobile];
echo json_encode($arr);

注意:尝试使用post变量。 和数组变量,我只是coppy粘贴了我的代码以便快速回答!!!!!!

与其使用完整,不如使用成功。 并且,如果您希望能够直接引用名称值对,那么您将需要解析返回到json的数据,因为您的php当前仅以字符串形式发送回数据。

$.ajax({url:'investor-invite.php',
 type:'POST',
 success: function checkData(data){
  dataObj = JSON.parse(data);
  if(dataObj.status == success){
   ...
  }
  else{
   ...
  }
 }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM