我有表单验证问题。下面是提交时发生的逻辑(至少是它的一部分。)在for循环中,我们检查站点访问者可以注册的可能事件的数组。如果用户没有检查任何事件(这些是复选框,因为用户可以注册多个事件),我们应该输入下面的第二个if语句,但由于某种原因我们不是。我知道如果没有检查任何事情就没有设置post变量,通过设置一个等于变量$ ECEventCnt的会话变量,我能够变量,如果没有发布任何内容,那么该变量等于0.但是,我们似乎永远不会进入第二个if语句。有什么想法吗?
unset($_SESSION["ECEvents"]);
$ECEventsArray = array();
$ECEventCnt = 0;
$_SESSION['debug'] = 'EC';
for ($i=0; $i<count($Val_WhichEventTypes); $i++) {
$key = $Val_WhichEventTypes[$i]["eventKey"];
//echo 'key' . $key;
if (isset($_POST["WhichEvent-" . $key]) && $_POST["WhichEvent-" . $key] == $key) {
$_SESSION['debug'] .= ' we made it to the place.' . $_POST["WhichEvent-" . $key];
$ECEventsArray[$key] = $key ;
if (strlen($ECEventsArray[$key])) $ECEventCnt += 1; // Only advance counter if EC Event is checked (key value is set)
}
}
$_SESSION['ecventcount'] = $ECEventCnt;
if ($ECEventCnt = 0) {
set_step_INvalid(5);
$_SESSION['debug'] .= ' we made it to the 2nd place.';
$cnt += 1;
$ValidationError .= ((strlen($ValidationError)==0) ? "" : ", ") . "<br />Please just select at least one Event Type/Time";
}
$_SESSION["ECEvents"] = $ECEventsArray;
//valid_step52();
}
答案 0 :(得分:2)
if ($ECEventCnt = 0) {
应该是
if ($ECEventCnt == 0) {
您正在分配变量$ECEventCnt
,但您的意思是使用它进行比较。