2015-07-19 92 views
0

我試圖將數據添加到一個購物車(使用)阿賈克斯jQuery的,現在我已經添加了一個主鍵約束,我想,當違反約束中得到jQuery的錯誤消息:如何在Ajax中獲取錯誤響應?

function add() 
     { 
     $(document).ready(function() 
     { 
     $('#addtocart').submit(function() { 
      //$('#add-button').prop('disabled',true); 
    var user = $('#user').val(); 
      var pid = $('#pid').val(); 
     $.ajax({ 
     type:  "post", 
     url:  "/devilmaycry/register?action=addtocart", 
     data:  {pid:pid ,user:user}, 
     success:  
        function() 
        { 
          alert("Item has been added to cart"); 
       }, 
        error: 
        function() 
        { 
          alert("Item already present in the cart"); 
       } 
       }); 
    return false; 
    }); 

     }); 
     } 

錯誤函數永遠不會運行,數據庫中的功能運行良好,但我在Ajax中看不到錯誤消息。

這裏是Java代碼:

public int addintocart(String user,int pid) 
{ 
try 
    { 
    conn = obj.connect(); 
    String sql="insert into cart(userid,product_id,quantity) values(?,?,?)"; 
    ps1 = conn.prepareStatement(sql); 
     ps1.setString(1,user); 
     ps1.setInt(2,pid); 
     ps1.setInt(3,1); 

     ps1.executeUpdate(); 

    } 
    catch(SQLException e) 
    { 
     e.printStackTrace(); 
    } 
    catch(Exception k) 
    { 
     k.printStackTrace(); 
    } 

    return x; 
} 

到底哪裏出問題了?

+0

你如何定義 「錯誤」 嗎?一些真正的Java異常/錯誤或already_present_in_cart錯誤? –

+0

錯誤意味着'錯誤:'在jquery代碼中的功能....我如何讓它運行? –

+0

你在哪裏發送迴應? –

回答

0

您必須將錯誤作爲來自Java的servlet響應發回。這裏是一個例子:How to return Java Exception info to jQuery.ajax REST call?

此外,你缺少ajax錯誤函數中的一些參數。這可能是另一個問題。退房http://api.jquery.com/jquery.ajax/您應評估錯誤並提供相應的消息。

+0

這不是答案,你可以寫評論,如果你說他是缺少一些你需要指出的參數。 –

+0

@maytham我認爲他涵蓋了發送迴應的要點。或多或少涵蓋了答案。 –

+0

@maytham對不起,我是新手。你能指點我一些指導方針嗎?我在手機上看到了這一點,並希望提供幫助,但在上面打字是一種痛苦。 –

0

該錯誤代碼wwill永遠不會工作。 AJAX的onerror事件僅在無法建立連接或URL不存在時才運行。您必須從服務器返回指示成功或失敗的內容。

我會這樣做。

PHP(此代碼轉換爲JAVA):

if(success){ 
    die(1); 
} else { 
    if(notyetincart){ 
     die(0); 
    } else { 
     die(2); 
    } 
} 

然後jQuery的編碼:

function add() 
     { 
     $(document).ready(function() 
     { 
     $('#addtocart').submit(function() { 
      //$('#add-button').prop('disabled',true); 
    var user = $('#user').val(); 
      var pid = $('#pid').val(); 
     $.ajax({ 
     type:  "post", 
     url:  "/devilmaycry/register?action=addtocart", 
     data:  {pid:pid ,user:user}, 
     success:  
        function(response) 
        { 
          if(reponse==="1") 
          alert("Item has been added to cart"); 
          else if(reponse==="0") 
          alert("Item could not be added to cart"); 
          else alert("Item already present in the cart"); 

       }, 
        error: 
        function() 
        { 
          alert("Item could not be added to cart due to poor network connection"); 
       } 
       }); 
    return false; 
    }); 

     }); 
     } 

希望這有助於

+0

thiks很多人。但是代碼中的'die()'是什麼? –

+0

@RichardMcFriendOluwarr這不是PHP的問題,這是一個Java的問題? –