запрос с IF не работает

1

Привет, у меня есть некоторые переменные, которые вычисляются с помощью API в раннем скрипте, но успешно возвращают значение $ TotalDistance (на основе почтового индекса для рассылки на почтовый индекс).

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

if($values['Return']>0) $TotalDistance=2*$TotalDistance; else $TotalDistance=$TotalDistance;

Однако результат все равно возвращается как одно (x1) значение, даже если флажок является билетом? Зачем

  • 1
    Я думаю, что вы не передаете правильное значение в условии, поэтому вы всегда получите значение, указанное в условии {else}. В вашем коде нет ничего плохого. @Johannes Йоханнес предлагает вам использовать другую форму для написания оператора if, но проблема не в этом.
  • 0
    Не могли бы вы показать нам код для $values['Return'] потому что проблема, скорее всего, связана с этой частью
Теги:
if-statement

1 ответ

1

Я предполагаю, что это HTML-форма, а значения $ являются ссылкой или построены из $ _POST.

При отправке флажка в HTML-форме возможны два возможных результата:

  1. Непроверено - не отправляется и не будет частью массива
  2. Проверено - отправлено значение VALUE флажка

Пример:

<input type="checkbox" name="Result" value="MyResultValue" />
<input type="hidden" name="HidValue" value="OtherValue" />

Уступило бы это, когда непроверено:

array (size=1)
    'HidValue' => string 'OtherValue' (length=10)

И при проверке:

array (size=2)
    'Result' => string 'MyResultValue' (length=13)
    'HidValue' => string 'OtherValue' (length=10)

Итак, чтобы проверить, проверен ли он (мне нравится включать проверку проверки, чтобы убедиться, что значение не было изменено), выполните следующие действия:

$values = $_POST; //again I'm assuming something like this is happening
if( isset($values['Result']) && $values['Result'] == 'MyResultValue' )

Если вас не волнует проверка - просто используйте isset.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню