2015-11-04 77 views
1

我有三个变量。二是从数据库服务器端:执行计算服务器和客户端

$base_duration = $arr['adzone_buyandsell_duration']

$base_price = $price['price']

都是int。第三个是用户输入:<input type="text" name="duration" value="">我需要执行如下计算:$cal_price = $base_duration/$base_price * user_input然后我需要能够通过$cal_price回到能够向用户收取正确的价格。我对PHP很熟悉,但不知道如何在提交表单时实时执行此计算。

+1

Ajax是你的朋友。 http://api.jquery.com/jquery.ajax/ – Jono20201

+0

他没有指定他使用jQuery,但是对AJAX – Terminus

+0

是。或者你可以将你的值传递给html并计算客户端的'cal_price'。但是如果这些值是秘密的,或者它们可以实时更改,并且希望确保它们是最新的,那么就像其他评论者已经写过的那样使用Ajax。 – chapay

回答

2

当前两个值仅在页面加载或重新刷新时发生更改时,不需要AJAX调用。

下面的代码添加到您的网页:

<script> 
$('document').ready(function(){ 
     $('#duration').change(function(){ 
      var base_duration = <?= $arr['adzone_buyandsell_duration'] ?>; 
      var base_price = <?= $price['price'] ?>; 
      var userInput  = $('#duration').val(); 
      var cal_price  = base_duration/base_price * userInput; 

      $('#calPrice').html(cal_price); 
     }); 
}); 
</script> 

将计算结果添加到编号calPrice一个div,你必须给输入字段duration

我创建了一个标识jsFildle让你看到它的完整的荣耀代码。我只是为你的php变量使用虚拟数据。

https://jsfiddle.net/03e3t137/

确保您的网页上加入下面的行添加的jQuery在<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

+0

请提供一个不使用JQuery的例子,因为在这种情况下它不是必需的。 – chapay

+0

我不介意使用jQuery,因为它已经加载到我的网站 – yobddigi

+0

@chapay - 为什么你不想使用jQuery。我个人更喜欢jQuery以上的JavaScript,因为代码是更清洁的jQuery。 – AgeDeO