【发布时间】:2014-10-29 15:05:45
【问题描述】:
我的表单中有两个复选框:
<div class="label-input-wrapper pickup">
<div class="form-label">I need Airport pick-up</div>
<div class="form-input">
<input type="checkbox" name="pick_up" value="Yes" />Yes
<input type="checkbox" name="pick_up" value="No" />No
<div class="error-msg">
<?php if(isset($errors['pick_up_no'])) { echo '<span style="color: red">'.$errors['pick_up_no'].'</span>'; } ?>
</div>
</div>
</div>
保存上述复选框值的变量:$pickup = $_POST['pick_up'];
验证:
//Check the airport pickup and make sure that it isn't a blank/empty string.
if ($pickup == ""){
//Blank string, add error to $errors array.
$errors['pick_up_no'] = "Please let us know your airport pick up requirement!";
}
if (($pick_up = Yes) && ($pick_up = No)) {
//if both selected, add error to $errors array.
$errors['pick_up_no'] = "Can not select Yes and No together!";
}
但是如果两者都没有被选中,或者如果只选择了一个,或者两者都被选中,那么上面的验证只会打印Can not select Yes and No together!。它为所有选择提供相同的错误消息。为什么?
【问题讨论】:
-
nop.. 我只想使用复选框.. 我喜欢这个名字@Ghost
-
您应该将值 Yes 和 No 视为字符串 - 所以在它们周围加上引号!
-
@Adimeus 我已更改为
if (($pick_up = "Yes") && ($pick_up = "No")),但结果仍然相同。 -
@RatanK 我已经用你的代码更新了。现在,如果两者都未选中,它会显示正确的错误消息。如果两者都被选中,它就不会打印任何内容。
-
@RiffazStarr Ghost 的回答有效(对我来说)。以为你想知道,但我仍然觉得应该使用单选按钮。