为什么Javascript函数只在php循环中执行一次?

时间:2015-12-29 04:11:40

标签: javascript php loops while-loop

我有一个 HideCheckbox()函数在php循环中执行。

重点是每次加载div时隐藏复选框。

但是,该复选框仅隐藏在第一个div中。

以下是代码:

<script type="text/javascript">
function HideCheckbox() {
            document.getElementById("deleteCarCheckbox").style.display = "none";
        }
</script>
<?php
        $username = $_SESSION['username'];

            try{
                $link = mysqli_connect("localhost","root","","db");
                $sql = mysqli_query($link,"a sql query");
                while ($donnees = mysqli_fetch_array($sql)){

?>
<div class="block-car">
<input type="checkbox" id="deleteCarCheckbox" name="deleteCar" style="float:right">
</div>
<script type="text/javascript">
        HideCheckbox();
        </script>



<?php
         }
        catch(Exception $e){die('Erreur : '.$e->getMessage());}
       }
?>

3 个答案:

答案 0 :(得分:1)

id字段的值必须是唯一的,下面的代码应该可以解决问题:

<script type="text/javascript">
function HideCheckbox(i) {
    document.getElementById("deleteCarCheckbox" + i).style.display = "none";
}
</script>

<?php
$username = $_SESSION['username'];

try{
    $link = mysqli_connect("localhost","root","","db");
    $sql = mysqli_query($link,"a sql query");
    $i = 1;
    while ($donnees = mysqli_fetch_array($sql)){

        ?>
        <div class="block-car">
        <input type="checkbox" id="deleteCarCheckbox<?php echo $i; ?>" name="deleteCar" style="float:right">
        <script type="text/javascript">
            HideCheckbox(<?php echo $i; ?>);
        </script>



        <?php
        $i++;
    }
    catch(Exception $e){die('Erreur : '.$e->getMessage());}
}
?>

答案 1 :(得分:1)

这是因为您的所有checkbox元素都具有相同的 ID ,并且您的javascript代码仅设置第一次出现的display,并且因为您的所有{{1}具有相同的 id ,然后它只会隐藏第一个checkboxes。相反,请让每个checkbox都有一个唯一ID

答案 2 :(得分:0)

HideCheckbox()多次运行,问题是始终隐藏deleteCarCheckbox 要确认循环实际正在运行,请尝试将内容记录到控制台上,您将看到它何时被调用。

function HideCheckbox() {
    document.getElementById("deleteCarCheckbox").style.display = "none";
    console.log('HideCheckbox was called');
}

此外,id属性始终必须是唯一的。见这里:Does ID have to be unique in the whole page?