2013-09-29 64 views
0

我有一個表單根據用戶的郵政編碼輸入計算出貨。我正在檢索用戶輸入的郵編,通過PHP獲取特定郵政編碼的運輸費用,然後使用AJAX調用將其傳回到HTML中輸出。但是,他的AJAX調用並沒有取代HTML。AJAX調用不會取代HTML

的(相關)HTML:

<input type="text" id="postcode" name="postcode"> 
    <div id="result"></div> 

的JS:

$(document).ready(function() {  
$('#postcode').change(function(){ 
    $.ajax({ 

     type: "GET", 
     url: "shipping.php", 
     data: 'shipping=' + $('#postcode').val(), 
     success: function(msg){ 
      $('#result').html(msg); 
     } 

    }); // Ajax Call 
}); 
}); //document.ready 

的PHP:

<?php 

    $postcode = (is_numeric($_GET['postcode']) ? (int)$_GET['postcode'] : 0); 

    if ($postcode >= 2000 && $postcode <= 2234) { 
    $shipping = 55.00; 
    } elseif ($postcode >= 2250 && $postcode <= 2310) { 
    $shipping = 105.00; 
    } 

    echo $shipping; 
?> 
  • 如果我在控制檯輸入味精,它返回undefined 。它不應該有一個值(郵政編碼輸入確實屬於正確的條件)..?
+2

凡具有ID「你的HTML元素結果」? –

+0

嘗試警告(味精),以確保你有味精? –

回答

3
$postcode = (is_numeric($_GET['postcode']) ? (int)$_GET['postcode'] : 0); 

更改該行:

$postcode = (is_numeric($_GET['shipping']) ? (int)$_GET['shipping'] : 0); 
4

使用:

$postcode = (is_numeric($_POST['postcode']) ? (int)$_POST['postcode'] : 0); 

和:

$.ajax{ type: "GET", ... } 

您使用GET發送代碼後通過查詢字符串,但你的PHP代碼試圖讀取值來自POST正文。

+0

謝謝,更新,但仍然沒有骰子。 – SeekingCharlie

2

你的Ajax是發送GET和你的PHP讀取$ _ POST,試試這個:

<?php 

    $postcode = (is_numeric($_GET['postcode']) ? (int)$_GET['postcode'] : 0); 

    if ($postcode >= 2000 && $postcode <= 2234) { 
    $shipping = 55.00; 
    } elseif ($postcode >= 2250 && $postcode <= 2310) { 
    $shipping = 105.00; 
    } 

    echo $shipping; 
?>