2016-08-01 37 views
1

我想插入值到數據庫和$ .getJson()方法我檢查如果我的價值存在數據庫,如果不是我想要調用$ .ajax把它放入數據庫我試過這樣和模式對話框彈出,但方法繼續執行,並且我的應用程序每次都會中斷如何在彈出模式對話框後阻止執行我嘗試將$ .ajax放入其他塊中,但沒有任何結果,然後我嘗試了這種方法,但沒有任何結果?

enter $("#btnSave").click(function (e) { 
    e.preventDefault(); 

    var form = $(this).closest("#forma1"); 

    $.ajax({ 
     type: "POST", 
     url: form.attr("Create"), 

     data: $.getJSON("/InspekcijskeKontrole/Check?id1=" + $("#kombo3").val() + "&id2=" + $("#kombo4").val(), function (data) { 

      if (data.InspekcijskoTijeloId != -1 && data.ProizvodId != -1) { 
       $.getJSON("/Proizvodi/VratiIme/" + data.ProizvodId, function (ime) { 

        if (ime != null) { 
         $("#modalni1 p").text("Inspekcijska kontrola za " + ime + " je vec izvrsena"); 
         $("#modalni1").modal({ backdrop: "static" }); 

        } 
       }); 

      } 

     }), 
     data:form.serialize(), 

     success: function (response) { 

     alert("Informacije su uspjesno ubacene"); 
     window.location.href = "/InspekcijskeKontrole/Index"; 


     }, 
     error: function (greska) { 
      alert("Doslo je do greske pri ubacivanju"); 
     } 

    }); 

});code here 
+0

但是你爲什麼要使用兩個'getJSON'請求? – mmushtaq

+0

一個檢查對象是否存在,另一個獲取對象的名稱(如果存在以顯示模態對話框中的信息) – jhony3

+1

可能的重複[如何從異步調用返回響應?](http://stackoverflow.com/questions/14220321 /我怎麼做 - 我從異步調用返回響應) –

回答

1

這不起作用,因爲這兩個內在的「檢查」和「VratiMe」 Ajax調用完成之後,該帖子已經完成。

因爲它們是異步的(即排隊並立即返回,然後在以後完成)。

你應該能夠通話的順序更改爲類似:

var form = $(this).closest("#forma1"); 

$.getJSON("/InspekcijskeKontrole/Check?id1=" + $("#kombo3").val() + "&id2=" + $("#kombo4").val(), function (data) { 

    if (data.InspekcijskoTijeloId != -1 && data.ProizvodId != -1) { 
     $.getJSON("/Proizvodi/VratiIme/" + data.ProizvodId, function (ime) { 

      if (ime != null) { 
       $("#modalni1 p").text("Inspekcijska kontrola za " + ime + " je vec izvrsena"); 
       $("#modalni1").modal({ backdrop: "static" }); 
      } 
     }); 
    } 
    else { 

     $.ajax({ 
      type: "POST", 
      url: form.attr("Create"), 

      data:form.serialize(), 

      success: function (response) { 

      alert("Informacije su uspjesno ubacene"); 
      window.location.href = "/InspekcijskeKontrole/Index"; 


      }, 
      error: function (greska) { 
       alert("Doslo je do greske pri ubacivanju"); 
      } 

     }); 
    } 
}); 
+0

我試過這樣,但沒有任何工作我被困了很長時間然後我得到錯誤的__RequstVerificationToken不存在,但令牌是包含在serialize()中; – jhony3

+0

進行了更新,並根據您在問題和意見中的其他詳細信息移動了其他人 –

+0

所以問題是:您的表單是否提交*沒有*支票電話?聽起來好像沒有,這是一個完全不同的問題,與Ajax調用無關。 –

1

爲什麼不這樣做在一個請求的檢查和可能的插入?我強烈希望在一個請求中做到這一點!

但沒關係,那不是問題。要使用$.ajax中的$.getJSON的結果,請將其置於$.getJSON的成功回調中。像這樣:

$.getJSON("getJsonUrl.html", function(responseOne) { 
    $.getJSON("anotherJsonRequest.html", function(responseTwo) { 
     $.ajax({ 
      url: "ajaxUrl.html", 
      type: "POST", 
      data = responseTwo 
     }); 
    }); 
}); 
相關問題