2016-01-19 55 views
-1

我想使用單選按鈕在PHP Web應用程序中進行預約。Javascript:通過選擇值禁用單選按鈕

我有一個單選按鈕列表如下,用戶可以選擇任何這個單選按鈕及其存儲在數據庫中的值是約會日期和時間的一半。

<tr> 
<td> 
    <label><input type="radio" name="book" value="1" required>11.00 AM</label> 
</td> 
<td> 
    <label><input type="radio" name="book" value="2" required>11.10 AM</label> 
</td> 
<td> 
    <label><input type="radio" name="book" value="3" required>11.20 AM</label> 
</td> 
<td> 
    <label><input type="radio" name="book" value="4" required>11.30 AM</label> 
</td> 
<td> 
    <label><input type="radio" name="book" value="5" required>11.40 AM</label> 
</td> 
<td> 
    <label><input type="radio" name="book" value="6" required>11.50 AM</label> 
</td> 
<td> 
     <label><input type="radio" name="book" value="7" required>12.00 PM</label> 
</td> 
</tr> 

另外我想禁用已經選擇並存儲在數據庫中的單選按鈕。

所以在頁面加載,我得到使用AJAX如下先前存儲的單選按鈕的值,

$(document).ready(function() { 
    $.ajax({ 
     type  : 'POST', 
     url   : 'http://localhost/design-ci/booking/abc', 
     dataType : 'json', 
     encode  : true 
    }); 
}); 

和此重播/響應的陣列,如下其中包含存儲在數據庫中的單選按鈕的值,(我希望爲「http://localhost/design-ci/booking/abc」功能/動作的編碼是不需要這個)

[{"value":"1"},{"value":"4"},{"value":"6"}] 

,我的問題是,如何禁用其中包含數組中的單選按鈕。 數組中的值是之前用戶選擇並存儲在數據庫中的值,當前用戶已經預訂時不能選擇它們。

在此先感謝。

+0

你需要完整的代碼嗎? –

+0

只是一個提示,到本地主機的鏈接是不會在除你以外的任何其他PC上工作.. –

+0

爲什麼你需要加載AJAX?有什麼理由不能在生成頁面時加載已預訂的條款? – honzalilak

回答

0

讓我來簡單的介紹一下:

1)從數據庫中獲取現有的值。在你的情況1,4,6。

2)創建一個時隙陣列,如下所述。 3)在數組中循環並打印複選框。

4)如果值存在於現有值中,則添加disabled屬性,否則不包含任何內容。

<?php 
$existingValues = array(1, 4, 6); 
$timeSlots = array(); 
$timeSlots[1] = '11.00 AM'; 
$timeSlots[2] = '11.10 AM'; 
$timeSlots[3] = '11.20 AM'; 
$timeSlots[4] = '11.30 AM'; 
$timeSlots[5] = '11.40 AM'; 
$timeSlots[6] = '11.50 AM'; 
$timeSlots[7] = '12.00 AM'; 
if (! empty($timeSlots)) { 
?> 
<tr> 
<?php 
    foreach ($timeSlots as $val => $display) { 
    $disabled = in_array($val, $existingValues) ? 'disabled' : ''; 
?> 
<td><label><input type="radio" name="book" value="<?php echo $val;?>" required <?php echo $disabled;?>><?php echo $display;?></label></td> 
<?php 
    } 
?> 
</tr> 
<?php 
} 
?> 

Reference of disabled

+0

感謝您的支持。但我期望在Java腳本中這樣做,因爲數組包含1,4,6是AJAX響應。 –

0

此外,我想禁用它已經選定並存儲在數據庫中的單選按鈕。

如果ü要做到這一點使用Java的腳本一個簡單的方法,直接從PHP做這個,也許在一個單獨的文件,你再有?這樣的事情,僞代碼..

<?php 
$age = array("1"=>"0", "2"=>"1", "3"=>"0"); 

for loop with array length 
if(key value==0) 
    print radio button with checkbox enabled 
else 
    print radio button with checkbox disabled 

?> 
0

要做到這一點,就是使用java-script的提取元素屬性 add id =「每個標籤的名字都不一樣!您的html代碼以及您的姓名=「book」 使用:

document.getElementById(「idname」)。disabled = true;

這將禁用與相應ID相關聯的單選按鈕。 所以,無論哪個單選按鈕已經預訂,你可以從你的數據庫中獲取它們,或者保持一個日誌來禁用單選按鈕列表,只需在循環中迭代它們即可