回发代码错误


code error postback

有人能帮我检查代码吗?无论我点击了什么值,收音机都会检查最后一个。它没有正确回发,但是返回的"echo"值是正确的。

非常感谢

这是我的代码

<html>
  <form id="form" name="form"  method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="radio" name="foo" value="Apple" checked="checked" <?php if(isset($_POST['foo']) == 'Apple'): echo "checked='checked'"; endif; ?>/>Apple
<input type="radio" name="foo" value="Banana"  <?php if(isset($_POST['foo']) == 'Banana'): echo "checked='checked'"; endif; ?>/>Banana
<input type="radio" name="foo" value="Orange" <?php if(isset($_POST['foo']) == 'Orange'): echo "checked='checked'"; endif; ?>/>Orange
<input type="submit" value="Confirm" /> </form>
<? if(isset($_POST['foo']))
{echo $_POST['foo'];
}
?>
 </html>

您的比较基于isset()的返回值,而他们应该测试$_POST['foo']的值,如下所示:

if(isset($_POST['foo']) && $_POST['foo'] == 'Orange'):

否则,true == 'Orange'实际上是真的,因为PHP是松散类型的,并且在幕后进行类型强制,这就是为什么你会得到这个奇怪的结果。

这是您的问题:

if(isset($_POST['foo']) == 'Orange')

isset返回true或false,并且由于PHP的弱比较,true == 'Orange'。你会想这样做:

if(isset($_POST['foo']) && $_POST['foo'] == 'Orange')