-1

我有一个布尔数组,我想检查它们是否都要TRUE生成一个按钮,如果不是那么什么都没有。但是,我总是看到按钮,当我按下它时,它什么也不做,即使它应该做某事。

请在下面找到代码:

下面的代码是我有数组的地方,它的index.php

<?php

session_start();

session_unset();
session_destroy();

$_SESSION["contestant_name"]["topics_done"] = array( FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE ); // topics done
$_SESSION["contestant_name"]["topics_score_correct"] = array();
$_SESSION["contestant_name"]["topics_score_wrong"] = array();
$_SESSION["contestant_name"]["correct"] = 0;
$_SESSION["contestant_name"]["wrong"] = 0;

?>

下一个代码来自choosetopic.php

<?php
}

print_r($_SESSION["contestant_name"]["topics_done"]);

if (checkIfAllTrue($_SESSION["contestant_name"]["topics_done"])) {
?>
        <button onclick="complete.php">finish</button>
<?php
}

function checkIfAllTrue ($arr) {
    for($i = 0; $i < count($arr); $i++) {
        if (!$arr[$i])
            return FALSE;
    }

    return TRUE;
}

?>
    </body>
</html>

我总是看到按钮。是什么导致了这种情况发生?应该看看数组是否全是TRUEs 然后它应该添加按钮,按下时转到complete.php,但是,我总是看到按钮,即使在完成所有主题之后,我按下它,也没有任何反应。

谢谢

4

1 回答 1

1

编辑

我刚刚在http://writecodeonline.com/php/上在线运行了这段代码, 它的工作......复制它并在那里自己测试......所以你的问题可能与会话有关。当您 var_dump 您正在测试的 $_SESSION 变量时,您会得到什么?

你确定你在choosepage.php 文件的顶部运行了session_start()吗?您在 index.php 文件的开头运行它,但检查 choosepage.php 文件

如果那不是问题,那么我的猜测是您每次处理它时都在重置变量,而不是实际更改正确的键......因此第一次为 NULL 值

  function checkTrue ($arr) {
  for($i = 0; $i < count($arr); $i++) {
    if (!$arr[$i])
        return FALSE;
   }

   return TRUE;
   }

  $array = array(false,true,true,true); //This is your $_SESSION variable simulated

 if (checkTrue($array)) {?>
    <button onclick="complete.php">finish</button>
 <?php };?>
于 2013-06-10T18:49:33.677 回答