我有一个根据用户输入的邮政编码计算运费的表单。我正在检索用户的邮政编码文本输入,通过 PHP 检索该特定邮政编码的运输成本,然后使用 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;
?>
- 如果我在控制台中输入 msg,它会返回 undefined。它不应该有一个值吗(邮政编码输入确实符合正确的条件)..?
最佳答案
通过使用:
$postcode = (is_numeric($_POST['postcode']) ? (int)$_POST['postcode'] : 0);
还有:
$.ajax{ type: "GET", ... }
您使用 GET 通过查询字符串发送邮政编码,但您的 PHP 代码尝试从 POST 正文读取值。
关于javascript - AJAX 调用不会取代 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19077890/