2014-02-13 69 views
0

我不確定我是否應該使用$.get$.getJSON.在這個例子中我應該使用哪一個?

我的代碼:

if (isset($_GET['numberofwelds']) && isset($_GET['numberofconwelds'])) 
{ 
    // Now we know both values definitely exist, VALIDATE them 
    $numwelds = $_GET['numberofwelds']; 
    $numconwelds = $_GET['numberofconwelds']; 

    if (is_int($numwelds) && is_int($numconwelds)) 
    { 
     // Calculate your total 
     $total = $numwelds + $numconwelds; 
     echo json_encode($total); 


    } 
    else 
+1

「get,post或JSON」就像是問「蘋果,香蕉或飛機」。您無法比較JSON(用於序列化分層數據的格式)和GET/POST(兩種製作HTTP請求的方法)。 – meagar

+2

區別在文檔中有解釋。將[this](http://api.jquery.com/jQuery.get/)的第一段與[this](http://api.jquery.com/jquery.getjson/)中的第一段進行比較。 – Jon

+1

也可以看看緊接在句子後面的代碼:「這是一個簡寫的Ajax函數,它相當於」 – Quentin

回答

3

$.getJson()$.get()$.post$.ajax()方法使用不同的參數只是別名。

$.get()使用HTTP GET請求從服務器加載數據。 $.ajax()當量:從使用HTTP POST請求的服務器

$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

$.post()載荷數據。 $.ajax()當量:從使用HTTP GET請求的服務器

$.ajax({ 
    type: "POST", 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

$.getJSON()負載JSON編碼的數據。 $.ajax()相當於:

$.ajax({ 
    dataType: "json", 
    url: url, 
    data: data, 
    success: success 
}); 

UPD:

根據你的代碼,你應該使用$.getJSON。因爲兩點:

  1. 既然你正在尋找進入$ _GET變量,你需要一個HTTP GET請求
  2. 既然你從服務器返回JSON,則需要dataType設置爲JSON
2

.getJSON()只是圍繞.get()的包裝。主要區別在於.getJSON()EXPECTS服務器的輸出是一個json字符串。 .get()不在乎它回來什麼。

基本上.getjSON是

function .getJSON(a,b,c) { 
    $.get(a,b,c,'json'); 
       ^^^^^^--- 4th param of .get tells jquery what data type you're expecting 
}