2016-07-06 201 views
1

我不確定如何標題的標題,因爲只是想着這個概念有點混淆我,我不知道爲什麼。我確信有一些簡單的解決方案。單選按鈕/複選框

這是我的代碼(下面附上)輸出的圖片。 enter image description here

用戶應該能夠在每個盒子裏點擊1個radiobox,但我似乎無法做到這一點。現在的方式,只能選擇1個休假按鈕,只能選擇1個缺席按鈕。

這裏是我的代碼:

if($loop < 4) { 

    echo '<td>'; 

    echo ' NAME<BR><input type="radio" name="vacationTeammates[]" value="'.$value[0].'">Vacation<br> 
      <input type="radio" name="absentTeammates[]" value="'.$value[0].'">Absent'; 

    echo '</td>'; 

    $loop++; 
} else { 
    $loop = 1; 
    echo "</tr><tr align='center'>"; 

    echo '<td>'; 

    echo ' NAME<BR><input type="radio" name="vacationTeammates[]" value="'.$value[0].'">Vacation<br> 
      <input type="radio" name="absentTeammates[]" value="'.$value[0].'">Absent'; 

    echo '</td>'; 

} 

(循環使得它,這樣的錶行結束,開始一個新的,所以它是有點不相干,但單選按鈕是什麼事情)

回答

0

謝謝@ user3163495 & @FirstOne我在這裏回答了一些提示。

我讓每個單元格中的兩個單選按鈕具有相同的名稱,並且所有其他名稱都有不同的名稱。

 if($loop < 4) { 

      echo '<td>'; 

      echo ' <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|V">Vacation<br> 
        <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|A">Absent<br>NAME'; 

      echo '</td>'; 

      $loop++; 
     } else { 
      $loop = 1; 
      echo "</tr><tr align='center'>"; 

      echo '<td>'; 

      echo ' <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|V">Vacation<br> 
        <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|A">Absent<br>NAME'; 

      echo '</td>'; 

     } 

對於價值,我用隊友的名字(其實他們唯一)和一個缺席或V度假。輸出將基本上看起來像:

35 | A

23 | V

64 | A

在處理側我explode()倒是在該|輸入標誌,基本上得到uniqueID和字母在單獨的變量,並從那裏正常處理。

1

每個單選按鈕對必須具有相同的「名稱」屬性值,以便瀏覽器知道它們是他們自己的設置。

更改您的代碼是這樣的,其中「$ SomeUniqueRowVar」是每一行改變一個變量:

echo 'NAME<BR>'; 
echo '<input type="radio" name="status'.$SomeUniqueRowVar.'" value="vacation">'; 
echo 'Vacation<br>'; 
echo '<input type="radio" name="status'.$SomeUniqueRowVar.'" value="absent">'; 
echo 'Absent'; 
+0

這將適用於該行,但如果您查看op的代碼,則會將'$ loop'重置爲'1'。 – FirstOne

+0

@FirstOne我可以很容易地在循環過程中創建另一個變量,所以這沒什麼大不了的 – GrumpyCrouton

+0

因此,基本上每列都是單選 – FirstOne

1

我想補充一個櫃檯,每個名字分配給特定的數組元素,而不是隻是[]。由於您只需要爲每個隊友選擇其中一個收音機,輸入必須是相同的名稱,但具有不同的值。將隊友名稱放入一個數組(與收音機輸入分開的變量),該數組使用計數器作爲索引。這樣你就知道哪個隊友會得到哪個迴應。

if($loop < 4) { 
    $name[$counter] = $value[0]; 
    echo '<td>'; 
    echo ' NAME<BR><input type="radio" name="teammates[$counter]" value=1>Vacation<br> 
      <input type="radio" name="teammates[$counter]" value=0>Absent'; 
    echo '</td>'; 
    $counter++; 
    $loop++; 
} else { 
    $name[$counter] = $value[0]; 
    $loop = 1; 
    echo "</tr><tr align='center'>"; 
    echo '<td>'; 
    echo ' NAME<BR><input type="radio" name="teammates[$counter]" value=1>Vacation<br> 
      <input type="radio" name="teammates[$counter]" value=0>Absent'; 
    echo '</td>'; 
    $counter++; 
} 

現在,當你處理數組時,你會知道隊友[$ counter]是否爲1,這意味着假期,0表示缺席。

如果您可以確定它沒有特殊字符/安全地解析特殊字符,您也可以選擇使用名稱作爲索引。

+0

從@ user3163495閱讀答案。正如FirstOne所指出的,這仍然行不通。這使得我可以在盒子內選擇兩個收音機。基本上使得所有的單選按鈕都可以同時選擇。「 – GrumpyCrouton

+0

編輯時考慮到您要將名稱與每個無線電輸入相關聯,並且只能選擇每個名稱的無線電。 – tjfo