下面是我的PHP脚本填充HTML表格的while循环。我希望底部的IF语句根据其值设置<td id="status"></td>
的属性。但是当我运行代码时,只设置第一行中的值。
我想问题是在循环中使用单个元素ID。我可以对表格中的每一行使用元素ID "status"
吗?
while($row=mysqli_fetch_assoc($result)){
$dd=strtotime($row["due_date"]);
$dd=Date('d-m-Y',$dd);
$bd=strtotime($row["borrow_date"]);
$bd=Date('d-m-Y',$bd);
echo '
<tr>
<td>'.$row["user_email"].'</td>
<td>'.$row["last_name"].'</td>
<td>'.$row["first_name"].'</td>
<td>'.$row["movie_ID"].'</td>
<td>'.$row["title"].'</td>
<td>'.$row["year"].'</td>
<td>'.$bd.'</td>
<td>'.$dd.'</td>
<td id="status"></td>
</tr>
';
$i++;
if($dd<$cd){
echo' <script type="text/javascript">
document.getElementById("status").innerHTML="Overdue";
</script>';
}
else{
echo '
<script type="text/javascript">
document.getElementById("status").innerHTML="Not Due";
</script>';
}
}
答案 0 :(得分:3)
首先 - 你不能为多个元素使用相同的ID。
阅读功能名称:getElementById
。请参阅 - Element
,而不是Elements
。这就是为什么使用getElementById
只返回第一个元素。
更进一步 - 您可以在php中检查条件(例如,使用简单的三元运算符)并忘记javascript:
// previous code here
'<td>'.$dd.'</td>
<td>' . ($dd<$cd? 'Overdue' : 'Not Due') . '</td>
</tr>';
$i++;
答案 1 :(得分:1)
简单地说你可以在php中自己做
if($dd<$cd){
echo '<td>Overdue</td>';
}else{
echo '<td>Not Due</td>';
}