2010-09-27 77 views
2

問題是我有一個頁面,其中包含以下特定問題的checboxes。當我選擇其中一個框並轉到下一頁並重新找回時,我發現沒有顯示覆選框被檢查。我檢查了它的後端,我能夠看到複選框確實被檢查過,但我無法將它們視爲checked.I無法弄清楚爲什麼他們似乎不是checked.Any幫助有關這將不勝感激。感謝提前。以下是我在該頁面中的代碼。複選框未顯示爲已檢查

<td> 
    <input type="checkbox" name="test_na" value="N/A" <?=$test_na?> id="test_na"> 
    <label for="test_na">NA</label> 
</td> 
<td> 
    <input type="checkbox" name="test_y" value="Y" <?=$test_y?> id="test_y"> 
    <label for="test_y">Yes</label> 
</td> 

<td> 
<input type="checkbox" name="test_n" value="N" <?=$test_n?> id="test_n"> 
<label for="test_n">No</label> 
</td> 
+1

那麼$ test_na,$ test_y和$ test_n的實際值是多少?除非你的短打開標籤被啓用,通常使用<?php echo $ test_na; ?>比 2010-09-27 12:24:56

+0

你是否依賴於[register_globals](http://php.net/manual/en/security.globals.php)?你不應該。 – Matchu 2010-09-27 12:31:05

回答

3

如果值匹配,測試複選框的值並回顯checked

<td> 
    <input type="checkbox" name="test_na" value="N/A" <?php echo (isset($test_na) && $test_na == 'N/A' ? checked : ''); ?> id="test_na"> 
    <label for="test_na">NA</label> 
</td> 
<td> 
    <input type="checkbox" name="test_y" value="Y" <?php echo (isset($test_y) && $test_y == 'Y' ? checked : ''); ?> id="test_y"> 
    <label for="test_y">Yes</label> 
</td> 

<td> 
<input type="checkbox" name="test_n" value="N" <?php echo (isset($test_n) && $test_n == 'N' ? checked : ''); ?> id="test_n"> 
<label for="test_n">No</label> 
</td> 
+0

非常感謝你的工作。 – swathi 2010-09-27 14:14:04

+0

不客氣。 – Toto 2010-09-27 14:29:51

0

看到頁面的來源。你的變量是什麼?它應該是checked="checked"checked="yes"checked="1"

+0

不在其中。它應該是一個在變量中具有checked屬性的字符串。 – pltvs 2010-09-27 13:02:25

+0

當我檢查所有這些,然後做一個echo $ test_na;它顯示爲N/A,而不是檢查選項N/A.Am我缺少的東西。 – swathi 2010-09-27 13:13:13

+0

在你的變量應該是與「檢查」字符串。你可以顯示代碼初始化這個變量嗎? – pltvs 2010-09-27 13:33:09