PHP报价计算器

时间:2015-05-07 18:40:18

标签: php

新手在这里...... 我试图创建一个简单的PHP报价计算器,我有一个数量字段和2个最小的菜单。

我要做的是将数量乘以添加到数量的一个列表项的指定值乘以另一个列表项的指定值,两个列表项的组合不会相同。 我有这个工作正常,除了一个列表项是相同的计算被抛出...

if( isset( $_REQUEST['calculate'] ))
{
$type=$_REQUEST['type'] && $lam=$_REQUEST['lam'];
if($type=="One Side Colour" && $lam=="None")
{
$add1 = $_REQUEST['quantity'];
$res= $add1*.70+$add1*0;


}

if($type=="One Side Colour" && $lam=="One Side")
{
$add1 = $_REQUEST['quantity'];
$res= $add1*.70+$add1*.15;
}


if($type=="Two Sides Colour" && $lam=="None")
{
$add1 = $_REQUEST['quantity'];
$res= $add1*1.4+$add1*0;
}

最后一个“if”混淆了计算

有什么想法来解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

一些代码修复:

if( isset( $_REQUEST['calculate'] )){
     $type = $_REQUEST['type'];
     $lam = $_REQUEST['lam'];
     $add1 = (int)$_REQUEST['quantity']; // Casts the value to Integer
     if($type=="One Side Colour" && $lam=="None"){
          $res = ($add1 * .70) + ($add1 * 0); // Unclear 0 * anything = 0
     }

     if($type=="One Side Colour" && $lam=="One Side"){
          $res = ($add1 * .70) + ($add1 * .15);
     }

     if($type=="Two Sides Colour" && $lam=="None"){
          $res = ($add1 * 1.4) + ($add1 * 0); // Another 0 issue?
     }
}

添加了一些( )来概述订单或操作。也不要理解为什么你乘以0 ...

修改

在你的一些评论之后,这将被浓缩一些:

if( isset( $_REQUEST['calculate'] )){
     $type = $_REQUEST['type'];
     $lam = $_REQUEST['lam'];
     $add1 = (int)$_REQUEST['quantity'];
     if($type == "One Side Colour") {
          $res = ($add1 * .70) + ($add1 * ($lam == "One Side" ? .15 : 0));
     } elseif($type == "Two Sides Colour") {
          $res = ($add1 * 1.4);
     }
}

修改2

查看您的HTML并提出一些建议:

<table width="450" cellpadding="5" border="0" align="center">
  <tbody><tr>
    <td>Quantity</td>
    <td>
      <input type="text" size="5" name="quantity" value="<?php echo (isset($_REQUEST['quantity'])?$_REQUEST['quantity']:''); ?>">    Business Cards</td>
  </tr>
  <tr>
    <td>Number of Sides</td>
    <td>
      <select name="type">
      <?php
      $type = array(
           "One Side Colour",
           "Two Sides Colour",
           "One Side Black/White",
           "One Side Colour/Other Side Black/White"
      );
      foreach($type as $o){
           if(isset($_REQUEST['type']) && $_REQUEST['type'] == $o){
                echo "      <option selected='selected'>$o</option\r\n";
           } else {
                echo "      <option>$o</option>\r\n";
           }
      }
      ?>
      </select></td>
  </tr>
  <tr>
    <td>Lamination</td>
    <td>
      <select name="lam">
      <?php
      $lam = array(
           "None",
           "One Side",
           "Both Sides"
      );
      foreach($lam as $l){
           if(isset($_REQUEST['lam']) && $_REQUEST['lam'] == $l){
                echo "      <option selected='selected'>$l</option\r\n";
           } else {
                echo "      <option>$l</option>\r\n";
           }
      ?>
      </select></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="Submit" value="calculate" name="calculate"></td>
  </tr>
    <tr><td>Price</td>
    <td style="font-weight:bolder;font-size: 20px;"><?php echo (isset($res)?"P$res":""); ?></td>
  </tr>
  <tr>
</tr></tbody></table>

这样,您的表单可以在每次计算价格时保留选择。

答案 1 :(得分:0)

希望这会对你有帮助......

JSONArray jsonarray = new JSONArray(jsonStr);
for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonObject= jsonarray.getJSONObject(i);
    int id = jsonObject.getInt("id");
    JSONObject jsonInner= jsonObject.getJSONObject("title");
    string title = jsonInner.getString("rendered");
}

另外,我创建了一个关于auto transport quote的计算器 如果您需要该计算器的任何帮助和代码,请与我联系。