我試圖構建一個網站,人們可以進行預訂,我正在使用數據庫來收集時間和php來顯示它。它會在5天內顯示所有時間,包括不可用的時間。它們顯示爲按鈕,全部共享相同的ID。我被困在最後一步,禁用不可用時間的按鈕。使用JavaScript檢查具有相同ID的多個按鈕
由於這些按鈕之間的唯一區別是它們的背景顏色(灰色表示不可用,綠色表示可用),所以我想用一個javascript函數來檢查條件框中的背景顏色,然後灰色一些人被禁用,綠色的人給出一個表格。但是:它只會檢查第一個按鈕的顏色,所有按鈕都會得到與該按鈕相同的結果。
我的頁面總是顯示50個按鈕,所以我想我可以在最後使用一個自動遞減的while循環,但是我似乎無法找到如何檢查下一個按鈕,現在它會只能一次又一次地檢查相同的按鈕。下面是PHP代碼的一部分,以示與正確的顏色(我已經採取了一些無關緊要的零部件出)的按鈕:
while($row = $results->fetch_assoc()){
$color = "##8fd6a5";
if (!empty($row['unavailable'])){
$color = "##9b9393";
}
$time= new DateTime($row['time']);
if ($time->format('H') == '08'){
echo '<button id="myBtn" onload="disablebuttons()" class="buttonstyle"
style="background-color: '.$color.'">'.$time>format('m/d H:i').'</button>';
}
}
這工作完全,但因爲所有的按鈕具有ID =「myBtn」當disablebuttons ()執行,它只查看第一個按鈕,下面這段代碼:
function disablebuttons() {
var amountButton = 50;
while (amountButton > 0){
var buttondisable = document.getElementById("myBtn");
if (buttondisable.style.backgroundColor == "rgb(155, 147, 147)"){
document.getElementById("myBtn").disabled = true;
amountButton--;
}
}
}
我試過在while循環結束時刪除該變量並把「VAR buttondisable =的document.getElementById(」 myBtn 「);」在循環內部,但是這不起作用。
您不能有相同的ID。 ID在HTML中是唯一的。 –
這會違背ID的自然行爲。定義分類而不是ID。 – Script47
不要使用相同的編號 –