2015-09-25 37 views
0


我對JavaScript的知識非常少,但不知何故我設法張貼表單數據到一個PHP文件。
現在我面臨一個小問題,在php文件上有一些驗證,我想要的是如果有任何驗證失敗,並且php文件返回$error = 'Invalid data';我希望這個ajax請求只顯示錯誤消息。

或者,如果它沒有返回錯誤,或者$error = '';這個ajax請求重定向到thankyou.php頁面。

HTML文件:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>AJAX重定向後PHP後返回true或無錯誤

<script> 
$(document).ready(function (e){ 
    $("#frmContact").on('submit',(function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      url: "data.php", 
      type: "POST", 
      data: new FormData(this), 
      contentType: false, 
      cache: false, 
      processData:false, 
      success: function(data){ 
       if (data == 'true') { 
        window.location.href="thankyou.php"; 
       }; 
       if (data !== 'true') { 
        $("#status").html(data); 

       }; 
      }, 
      error: function(){ 
      }   
     }); 
    })); 
}); 

<form id="frmContact" action="" method="post"> 
    <div id="status"></div> 
    <div> 
     <label>Email</label> 
     <span id="userEmail-info" class="info"></span><br/> 
     <input type="text" name="userEmail" id="userEmail" class="demoInputBox"> 
    </div> 
    <div> 
     <input type="submit" value="Send" class="btnAction" /> 
    </div> 
</form> 



data.php

<?php 

// PHP code above... 
//Lets add $error variable for test purpose... 

$error = 'Invalid data'; 

?> 
+0

你checkinh成功爲true,但在PHP中,你正在呼應'無效數據' –

回答

1

變化唯一的成功之類的函數日是

success: function(data){ 
      if (data === 'Invalid data') { 
        $("#status").html(data);      
      } 
      else { 
       window.location.href="thankyou.php"; 
      } 
     } 

,並在PHP你應該呼應$error

+0

感謝您的回覆。但我得到這個錯誤: 'SyntaxError:意外的關鍵字'else'' – sohal07

+0

對不起,我的錯誤,刪除後,如果和其他分號,我會編輯我的答案。你可以檢查一下。 –

+0

該錯誤已修復,謝謝。但即使我回顯無效數據,它也會重定向。 – sohal07

0

回聲出「成功」如果一切按照您在發佈數據中想要的東西即所有驗證通過或回聲出任何具體的驗證錯誤。迴應的迴應將是我們的JS將據此採取行動的迴應。

$(document).ready(function (e){ 
    $("#frmContact").on('submit',(function(e){ 
     e.preventDefault(); 
      $.ajax({ 
       url: "data.php", 
       type: "POST", 
       data: new FormData(this), 
       contentType: false, 
       cache: false, 
       processData:false 

      }) 
      .done(function(response){ 
      if(response=="Success") 
       window.location.href="thankyou.php"; 
      else 
       $("#status").html(response); 
      }); 
     })); 
    }); 
+0

謝謝隊友。但由於某種原因,它不是重定向。 它在#stats中顯示「成功」 – sohal07