为什么Javascript函数在php循环中只执行一次
why Javascript function executes only once inside a php loop?
我有HideCheckbox()函数要在php循环中执行。
要点是在每次加载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());}
}
?>
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());}
}
?>
这是因为所有checkbox
元素都具有相同的id,并且javascript代码只设置第一次出现的display
,并且由于所有checkboxes
具有相同的id,因此它只会隐藏第一个checkbox
。相反,让每个checkbox
都有一个唯一的id。
HideCheckbox()
运行多次,问题是始终隐藏deleteCarCheckbox
要确认循环是否真的在工作,请尝试将事情记录到控制台上,您将看到它何时被调用。
function HideCheckbox() {
document.getElementById("deleteCarCheckbox").style.display = "none";
console.log('HideCheckbox was called');
}
此外,id属性必须始终是唯一的。请参阅此处:ID在整个页面中必须是唯一的吗?
相关文章:
- If语句只执行一次
- JavaScript 只在 php 代码中执行一次
- 就绪函数上的指令只能执行一次
- 如何在if循环中只执行一次
- Javascript执行一次
- Jquery on('单击')..函数只执行一次
- 如何只执行一次ajaxStart和ajaxEnd
- 使用Greasemonkey每5秒执行一次Javascript
- 只执行一次jquery animate
- jQuery如果大于则执行操作,但只执行一次
- 制作一个$window.location.reload(true);在离子/角度中仅执行一次
- 正则表达式回调函数只执行一次
- 代码只执行一次,但应该继续执行
- Casper.start 的循环只执行一次
- 如何在一次点击(而不是整个点击)内执行一次操作
- 全局 JS 文件:仅执行一次 JSON 调用
- 函数仅执行一次
- 反应:仅在单击 html 元素时执行一次操作
- 浏览器化只执行一次模块代码,在多个需要调用上
- 如何使函数在 2 分钟后执行,然后每隔 2 分钟执行一次