0

我为我的一位客户创建了折扣功能。无论何时,将选定的优惠券输入优惠券字段,然后它将从数据库中匹配优惠券是否处于活动状态并且是否存在?如果是,那么它会进行一些数学计算,给予用户 10% 的折扣,并向用户显示折扣金额。它在 Chrome 中运行良好,但是当我在 Firefox 中测试相同的功能时,它的行为很奇怪。它给了我大约 20%、50% 的折扣。像一些随机数学计算。

我正在使用 jquery、php、mysql 向客户实时显示结果。这个问题真的是在逗我。最初,我使用 PHP 会话来获取折扣值,但我尝试将折扣值存储在 db 中,然后再次检索它进行计算。但同样的问题也会发生。在这一点上我很困惑。

这是jquery代码:

<script type="text/javascript">
$(document).ready(function(){
 $("button").click(function(){
    $.post('coupapply.php', {coup:$('#coupon').val()}, function(result) {
    });
    $.post('discount.php', {disc:$('#totamt tr').find("td").eq(1).html()}, function(result) {
    $('#cpresult').html(result);
    });
 });
});
</script>
<span id='cpresult'></span>

这是php代码:

<?

if ($_REQUEST) {
$disc = $_REQUEST['disc'];
$amt = substr($disc, 1);
$caldisc = $amt*0.1;
$total = (200-$caldisc);
echo "<spain style='font-size:14px;'>*10% discount applied* Pay ".$total." now!</span>";
}
?>

让我解释一下这段代码。我使用两个 $post 函数的原因是因为我从当前页面获得了两个值。一个是设置为“coup”的优惠券代码,一个是设置为“disc”的总计算金额。然后两个值都处理到不同的 php 页面并打印结果。我认为问题不在于 PHP 代码。问题在于我的 jquery 代码。我尝试在 php 代码中使用一些常量值来进行 200-100 之类的计算,并且效果很好。但是'disc'变量的值正在产生影响。

问题解决了:实际上发生了什么,我已经包含了这样一个 200 美元的空间

这个空间在 Firefox 浏览器中造成了所有问题。所以,我最初使用 substr() 是从位置 1 断开字符串,但现在。我更改了中断位置并将其设置为 2,现在一切都很好。顺便说一句,谢谢你们的帮助:)

4

1 回答 1

3

PHP 是一种服务器端语言。向服务器发送请求,服务器运行 PHP 代码。这意味着无论您使用什么浏览器,您的 PHP 代码都无法返回不同的结果。您的 MySQL 数据库也是如此。知道了这一点,我们就可以确定问题所在。

问题出在您的 HTML 或 javascript (jQuery) 中。没有代码,我们不知道在哪里。


阅读您的编辑后:

我试图将折扣值存储在 db 中,然后再次检索它进行计算。但同样的问题也会发生。

当您处理响应时,听起来好像出了点问题。如果您临时更改 PHP 代码使其始终返回静态值,而浏览器仍然给出不同的结果,您就知道是您的 javascript 错误地解释了这些值。

如果不是,我们知道浏览器发送的数据是不同的。在这两种情况下,错误很可能在您的 javascript 中。

这是您通过这些小信息可以获得的最佳答案。

于 2012-08-03T09:03:21.877 回答