PHP если заявление не работает - PullRequest
0 голосов
/ 28 апреля 2011

Есть ли какая-то причина, по которой моя инструкция if в php не работает? Он не рассчитывает цену, когда выбран правильный переключатель. Постоянно отображает цену как "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 ]

2 голосов
/ 28 апреля 2011

просто измените эти строки в вашем коде

            $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;   }
2 голосов
/ 28 апреля 2011

Кстати, вы не должны проверять идентификатор.Вы должны проверить значения тегов 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 (имя) будет с его значением (значением), идентификатор здесь не имеет значения.

2 голосов
/ 28 апреля 2011

Вы должны использовать массив $ _POST, как в if (empty($_POST['extras'])) {

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

0 голосов
/ 28 апреля 2011
  • Не вижу <?php ?> Это ошибка вставки? Если это так, пожалуйста, исправьте :) В противном случае вы должны иметь их вокруг вашего php.
  • проверьте, что такое $duration. Если это переменная записи, используйте ее как $_POST[], а не просто так.
  • Подумайте о добавлении { и } к вашим ifs: гораздо яснее, что происходит
  • $ цена = $ цена ничего не делает. ПОЧЕМУ это там?
0 голосов
/ 28 апреля 2011

Существует ли $_POST['extras'] и имеет ли он значения ?? Вы должны проверить с помощью var_dump($_POST['extras']), чтобы увидеть, какое содержимое на самом деле там.

В противном случае этот код должен работать нормально, насколько я могу судить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...