【发布时间】:2019-03-04 21:14:51
【问题描述】:
我使用 PHP 和 Javascript 我的第一页是appel.php
在其中,我使用 php 在以下位置创建了一个表:constructAppel.inc.php 使用我的数据库中的数据。
foreach ($rows as $row):
$count = $count +1;
echo "<tr>";
echo "<td><button Onclick=ClickPresence('bt".$row['Id']."') id='bt".$row['Id']."' style='background-color:green;'>Oui</button></td>";
echo "<td>" . $row['Nom'] . "</td>";
echo "<td>" . $row['Prenom'] . "</td>";
echo "<td>" . $row['Cat'] . "</td>";
echo "<td><button onclick=window.location.href='vueparticipant.php?id=".$row['Id']."' id=". $row['Id'] ." class='material-icons'>assignment_ind</button></td>";
echo "</tr>";
endforeach;
echo "</table>"
我想用 javascript(或者其他东西)更改按钮的背景颜色
PHP:
$stmt = $db->prepare("SELECT * FROM dataappel WHERE Acti = '$ActiActu' AND Dat = '$Dat' AND Prof = '$Prof' AND Etab = '$Etab'");
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$count = $stmt->rowCount();
if ($count > 0) {
$list = '';
foreach ($rows as $r) {
$list .= "bt".$r['IdEleve'].",".$r['Appel']."/";
}
我的列表类似于:bt55,Yes/bt45,No/bt21,Yes。
如果逗号后的值 = Yes 则 bt55 的背景为绿色
这是我的脚本:
var list = '<?php echo $list; ?>'
if (list != '') {
ActuPresence(list);
}
function ActuPresence(list){
var list = '<?php echo $list; ?>'
var a = list.split("/");
for (var i = 0; i < a.length-1; i++) {
var b = a[i].split(",");
var btn = b[0];
console.log(document.getElementById(btn)) ;
if (b[1] = "No"){
console.log(btn);
btn.style.backgroundColor = "red";
console.log("No");
}
if (b[1] = "Yes"){
btn.style.backgroundColor = "green";
console.log("Yes");
}
但是 document.getElementById(btn) 返回 null。
Var a、var b 和 var btn 返回良好的值。 我知道 bt55 存在,因为当我点击它时,console.log 返回好的 id。
【问题讨论】:
-
您当时是否验证了
btn的值?你真的有一个带有id="..."标签的元素吗? -
<td><button onclick=window.location.href='vueparticipant.php?id=17' id=17 class='material-icons'>assignment_ind</button></td>对我来说似乎不是有效的 HTML - 检查您的连接和引号(并在您的问题中发布生成的 HTML)。 -
做我想做的,没问题在这个按钮上。
-
btn 在此时返回 null。我试图把它放在别的地方,但什么也没有。我正在尝试使用 window.onload
标签: javascript php loops getelementbyid