這可能很簡單,但我是PHP新手,並不是我的專長,所以請耐心等待!我卡住了!PHP'if'語句中的兩個條件
我有一個表單設置爲是或否的答案作爲單選按鈕。如果用戶點擊yes
,則會顯示另外兩個單選按鈕:a
和b
。如果他們點擊了no
,他們將會看到單選按鈕c
和d
。
順便說一句,我有一些JavaScript隱藏a
和b
DIV和c
和d
DIV直到yes
或no
被點擊時,只是爲了保持整潔。包含c
和d
的no
DIV消失,並且在no
之後點擊yes
時被替換爲yes
DIV,反之亦然。這一切工作正常。
我的問題是與PHP。這是不可能的,但如果用戶點擊no
,做出選擇,例如d
,然後決定將其答案更改爲yes
,然後選擇a
,該腳本仍會返回d
。我想這是因爲d
仍然被選中,並且最後出現在HTML流中。
我想我的腳本要做的是忽略c
和d
,即使他們已被選中,如果選擇了yes
。同樣,如果選擇no
,我想要忽略a
和b
。
一個HTML看起來像這樣:
<label for="yes_or_no">Yes or No?</label>
<input type="radio" name="yes_or_no" id="yes" value="yes" />
<label for="yes">Yes</label>
<input type="radio" name="yes_or_no" id="no" value="no" />
<label for="no">No</label>
<div id="yes">
<label for="a_or_b" id="a_or_b">A or B?</label>
<input type="radio" name="a_or_b" id="a" value="a" />
<label for="a">A</label>
<input type="radio" name="a_or_b" id="b" value="b" />
<label for="b">B</label>
</div>
<div id="no">
<label for="c_or_d" id="c_or_d">C or D?</label>
<input type="radio" name="c_or_d" id="c" value="c" />
<label for="c">C</label>
<input type="radio" name="c_or_d" id="d" value="d" />
<label for="d">D</label>
</div>
我的PHP看起來是這樣,但它不能正常工作:然後
$yes_or_no = $_REQUEST["yes_or_no"] ;
$a_or_b = $_REQUEST["a_or_b"] ;
$c_or_d = $_REQUEST["c_or_d"] ;
if ($yes_or_no="yes" && $a_or_b!="") $result="$a_or_b";
if ($yes_or_no="no" && $c_or_d!="") $result="$c_or_d";
$feedback = "$result";
變量$feedback
通過電子郵件發送給我。
我希望有道理!謝謝你的幫助!
Martin。
這看起來正是他的問題。在這種情況下,當您在IF語句中使用單個=時,您將設置該變量的值,並且正在測試該變量是否爲假,因此在這種情況下,IF語句總是會成功。使用==肯定會修復它。此外,您不需要將$結果放在雙引號中。 $ feedback = $ result會工作得很好。 – WhiskeyTangoFoxtrot 2011-05-17 18:14:50
@Foxtrot,是的。這絕對是一個問題。我的意思是我沒有通過並分析邏輯,以確定即使錯誤得到解決,它是否真的是正確的。另外,'if'返回'true'並且'$ result'從不設置是可能的。他正在處理這個案子嗎?我不知道。 – Matthew 2011-05-17 18:18:55
只是對等號運算符進行了調整,它的功能就像一個魅力!如果它殺死我(這很有可能!),我會得到這個PHP百靈的竅門。同時,感謝所有幫助我的人(@ konforce,@Foxtrot,@joey,@lonesomeday和其他人)!馬丁。 – Martin 2011-05-17 18:58:08