不同浏览器中的不同数学计算

时间:2012-08-03 09:00:50

标签: php jquery session firefox google-chrome

我为我的一位客户创建了折扣功能。每当选定的优惠券被输入优惠券fiedld时,它将从数据库中匹配优惠券是否有效并且是否存在?如果是,那么它会进行一些数学计算,给予用户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,现在一切都很好。顺便说一句,谢谢你们的帮助:)

1 个答案:

答案 0 :(得分:3)

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

问题在于你的HTML或javascript(jQuery)。没有代码,我们无法告诉你。


阅读完编辑后:

  

我尝试将折扣值存储在db中,然后再次检索它   用于计算。但同样的概率发生了。

当您处理响应时,听起来好像出了问题。如果您暂时更改PHP代码以便它始终返回静态值,并且浏览器仍然会给出不同的结果,您知道这是您的javascript错误地解释了值。

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

这是您使用这些小信息获得的最佳答案。