2015-12-10 116 views
1

嗨我有一些變量,它是在早期腳本中使用API​​計算出來的,但成功返回值$ TotalDistance(基於郵編到郵政編碼驅動距離)。查詢與IF不工作

我添加了一個複選框,當它是返回旅程時打勾時,想法是它將距離加倍,這是我的查詢。

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

但是,即使複選框是票證,結果仍然以單個(x1)值返回?爲什麼

+1

我認爲你沒有在條件中傳遞正確的值,所以你總是會得到在{else}條件中給出的值。你的代碼沒有問題@約翰尼斯建議你使用和其他形式來編寫if語句,但問題不在那裏。 – Franco

+0

您能告訴我們'$ values ['Return']'的代碼嗎?因爲問題很可能與該部分有關 – Dacaspex

回答

1

我假設這是一個HTML表單,$ values是引用或$ _POST。

當提交在HTML表單複選框,有兩種可能的結果:

  1. 未經檢查的 - 不會被提交,不會是陣列
  2. 經過的一部分 - 的價值複選框被提交

例子:

<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。