【问题标题】:JS & PHP InteractionJS & PHP 交互
【发布时间】:2013-09-29 10:01:35
【问题描述】:

我有一个邮政编码的输入文本字段。根据用户输入的邮政编码,用PHP指定运费(不同的邮政编码区有不同的运费)。

在表格的后面,无论指定什么运费,都需要作为 JS 计算的一部分来获得总价。

这是我的 PHP:

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

echo $shipping;
?>

还有 JS:

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

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

        }); // Ajax Call

    }); //event handler
}); //document.ready

所以我不认为 AJAX 调用的数据和成功是正确的。基本上,我需要获取 $shipping 的值,然后将其输出到 div(以便用户可以看到)。我错过了什么?

【问题讨论】:

    标签: javascript php forms


    【解决方案1】:

    对 php 文件进行 ajax 调用,并提交邮政编码。服务器代码应返回(回显)给定邮政编码的运费。从 ajax 获取响应,这将是运费。您现在可以在计算中使用此值(值应转换为 int 或 float,因为默认情况下来自 ajax 的响应是文本)

    【讨论】:

    • 到目前为止,我添加了我的代码以使其更清晰。我明白你在说什么,但不确定我需要添加/更改什么。谢谢。
    【解决方案2】:

    在下面的代码中:

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

    您必须使用赋值运算符(单个 =),而不是等于运算符 (==)。示例:$shipping == 55.00 变为 $shipping = 55.00

    此外,所有 if 语句的第二个条件都缺少操作数(变量): 而不是

     if ($postcode >= 2000 && <= 2234) {
    

    在下面使用:

      if ($postcode >= 2000 && $postcode<= 2234) {
    

    【讨论】:

    • 您查看过 Apache 错误日志吗? (假设您使用的是 Apache)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2017-11-17
    • 2022-09-29
    • 2015-01-28
    相关资源
    最近更新 更多