2

这可能很简单,但我是 PHP 新手,这不是我的强项,所以请多多包涵!我被困住了!

我已经设置了一个带有是或否答案的表单作为单选按钮。如果用户点击yes,他们会看到另外两个单选按钮选项:ab。如果他们点击no了,他们将看到单选按钮cd.

顺便说一句,我有一些 JavaScript 隐藏了aand bDIV 和cand dDIV,直到单击yesno,只是为了保持整洁。noDIV,包含c并消失,并在单击后被DIVd替换,反之亦然。这一切都很好。yesyesno

我的问题是PHP。这不太可能,但如果用户点击no,做出选择,比如说d,然后决定将他们的答案更改为yes,然后选择a,脚本仍然返回d。我猜这是因为d它仍然被选中并且最后出现在 HTML 流中。

我希望我的脚本做的是忽略cd,即使它们已被选中,如果yes被选中。同样,如果被选中,我希望a并被b忽略。no

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通过电子邮件发送给我。

我希望这是有道理的!谢谢你的帮助!

马丁。

4

4 回答 4

5

用于==测试相等性:

if ($yes_or_no == "yes" && $a_or_b != "") $result="$a_or_b";
if ($yes_or_no == "no" && $c_or_d != "") $result="$c_or_d";

我不确定这是否会完全解决您的问题,但也许它会让您入门。

哦,你可以$result = $a_or_b代替$result="$a_or_b",但这不会影响这里的任何东西。

于 2011-05-17T18:07:01.153 回答
0

您当前正在将变量设置$yes_or_noif. 使用==而不是=. 一是赋值,二是比较。

于 2011-05-17T18:07:59.950 回答
0
if ($yes_or_no="yes" && $a_or_b!="") $result="$a_or_b";

问题出在$yes_or_no = "yes". 那是赋值运算符,而不是比较运算符。它说“设置$yes_or_noyes,然后返回true”(这不完全是,但它很接近)。您需要一个显示“true如果$yes_or_no等于则返回”的运算符yes

替换===,您的代码应该可以工作。

(您的代码在这里被破坏还有另一个原因——优先级=低于,而优先级更高,但这不是最大的问题。)&&==

于 2011-05-17T18:09:18.247 回答
0

您可以使用 js 清除任何 a 和 b 的选择是否被选中,当用户选择是时也是如此。

此外,您的 php 中有一些其他人提到的错误。

于 2011-05-17T18:12:38.863 回答