php if语句不起作用

时间:2011-04-28 13:05:35

标签: php if-statement

有没有理由在php下面的if语句不起作用?选择正确的单选按钮时,它不会计算价格。它不断显示价格为“49”

     <td width="236" height="25" align="left">Booking Period:</td>
</tr>
            <tr>
                <td height="10" align="right" class="align_left">One Day: ₤49 </td>
                <td>
                  <input type="radio" name="duration" id="oneday" value="One Day Rental"/>
                </td>
              </tr>

    <tr>
                <td height="30" align="right" class="align_right">Two Day: ₤69</td>
                <td>
                  <input type="radio" name="duration" id="two" value="Two Day Rental"/>
                </td>
              </tr>
    <tr>
                <td height="30" align="right" class="align_right">Weekend: ₤79</td>
                <td>
                  <input type="radio" name="duration" id="weekend" value="Weekend Rental"/>
                </td>
              </tr>

            $price = 0;
            if ($duration=="oneday")
            $price = 49;
                elseif ($duration=="two")
            $price = 69;
            elseif ($duration=="weekend")
            $price = 79;
            else
                $price = 49;

        if (empty($_POST['extras'])) {
         $price = $price;
                } else { 
                if($extra == "Deodoriser"){
                            $price = $price + 7;
                        } elseif($extra == "Carpet Protector (5 litre)"){
                            $price = $price + 39;
                        } elseif($extra == "Carpet Repair Tools"){
                            $price = $price + 9;
                        } elseif($extra == "Furniture Moving Equipment"){
                            $price = $price + 7;
                        } elseif($extra == "Furniture Tabs"){
                            $price = $price + 2;
                        } elseif($extra == "Urine Decontamination Treatment"){
                            $price = $price + 17; }
                else
        $price = $price; 
        }

5 个答案:

答案 0 :(得分:2)

您应该在if (empty($_POST['extras'])) {

中使用$ _POST数组

if ($_POST['duration']=="oneday") ...

答案 1 :(得分:2)

顺便说一句,你不应该检查身份证。 您必须检查html标记的值。

        $price = 0;
        if ($duration == "One Day Rental")
          $price = 49;
        else if ($duration == "Two Day Rental")
          $price = 69;
        else if ($duration == "....")
          $price = 79;
        else
          $price = 49;

我想你的问题......

提交

<input type="radio" name="duration" id="weekend" value="Weekend Rental"/>

post数组中的

持续时间(名称)将带有其值(值),这里的id无关紧要。

答案 2 :(得分:2)

只需修改代码中的那些行

            $price = 0;
        $duration = $_POST['duration'];
        if ($duration=="One Day Rental")
        {   $price = 49;    }
        elseif($duration=="Two Day Rental")
        {   $price = 69;    }
        elseif ($duration=="Weekend Rental")
        {   $price = 79;    }
        else
         {   $price = 49;   }

答案 3 :(得分:0)

$_POST['extras']是否存在,是否有值?您应该使用var_dump($_POST['extras'])进行检查,看看其中的内容是什么。

否则,就我所知,该代码应该可以正常工作。

答案 4 :(得分:0)

  • 我看到没有<?php ?>是粘贴错误?如果是这样,请修复:)否则你应该在他们的PHP周围。
  • 检查$duration是什么。如果这是一个帖子变量,请将其用作$_POST[],而不仅仅是{.1>}。
  • 考虑在ifs周围添加{}:发生的事情会更清楚
  • $ price = $ price什么都不做。那是什么?