這個問題在這里已經有了答案: 從四個問題中只選擇了一個單選按鈕 (3 個回答) PHP while 回圈中的單選按鈕 (2 個回答) 如何在 php 中檢查陣列回圈中的多個單選按鈕 1 個回答 foreach 回圈中的單選按鈕 2 個回答 如何在php中使用for回圈創建多個單選按鈕? (4 個回答) 4 小時前關閉。
我有幾組問題,但我只能選擇第 1 個,每當我選擇第 2 個的答案時,第 1 個選定的按鈕也會改變。
代碼:
<?php
$i = 1;
$ques = $conn->query("SELECT * from questions");
while($row=$ques->fetch_assoc()):
?>
<div style="border: 1px solid black; box-shadow: grey; margin-bottom: 10px; padding: 15px">
<b>Question: <?php echo $i ?></b>
<p><?php echo $row['questions'] ?></p>
<input type="radio" id="not" name="eval" value="0">
<label for="not"> NOT AT ALL</label><br>
<input type="radio" id="some" name="eval" value="2">
<label for="some"> FOR SOME OF THE TIME</label><br>
<input type="radio" id="most" name="eval" value="4">
<label for="most">FOR MOST OF THE TIME</label><br>
<input type="radio" id="all" name="eval" value="5">
<label for="all"> FOR ALL OF THE TIME</label>
<br>
<br></div>
<?php endwhile; ?>
uj5u.com熱心網友回復:
您的 HTML-id 不是唯一的,因為您在每個回圈中都創建相同的。你需要這樣的東西:
<?php
$i = 0;
while(...):
?>
...
<input type="radio" id="not_<?= $i ?>" name="fav_language_<?= $i ?>" value="0">
<label for="not_<?= $i ?>"> NOT AT ALL</label><br>
...
<?php
$i ;
endwhile;
?>
uj5u.com熱心網友回復:
因為每個問題的所有收音機都有相同的“名稱”屬性
對于每個問題的每組收音機,輸入與問題相關的名稱,例如 fav_language[$i]
uj5u.com熱心網友回復:
在 HTML 中,單選按鈕與其他同名單選按鈕屬于同一個“單選組”。Whenever a radio button is selected, every other button with the same name is deselected. 您需要為每個問題的按鈕選項使用唯一的名稱。每個元素的 id 也應該是唯一的。
uj5u.com熱心網友回復:
您需要確保每組選項(即問題 1 的選項、問題 2 的選項)name在 HTML 中具有唯一的屬性。這就是瀏覽器(以及之后的 PHP 代碼,當再次提交表單時)將它們區分開來的方式。如果您為每個單選按鈕指定相同的名稱,那么瀏覽器會將它們視為同一組的一部分,并且只允許您從所有選項中選擇一個選項(因為這就是單選按鈕的作業方式)。
實作這一目標的超簡單方法可能是:
<?php
$i = 1;
$ques = $conn->query("SELECT * from questions");
while($row=$ques->fetch_assoc()):
$radioname = "fav_language".$i;
?>
<div style="border: 1px solid black; box-shadow: grey; margin-bottom: 10px; padding: 15px">
<b>Question: <?php echo $i ?></b>
<p><?php echo $row['questions'] ?></p>
<input type="radio" name="<?php echo $radioname; ?>" value="0">
<label for="not"> NOT AT ALL</label><br>
<input type="radio" name="<?php echo $radioname; ?>" value="2">
<label for="some"> FOR SOME OF THE TIME</label><br>
<input type="radio" name="<?php echo $radioname; ?>" value="4">
<label for="most">FOR MOST OF THE TIME</label><br>
<input type="radio" name="<?php echo $radioname; ?>" value="5">
<label for="all"> FOR ALL OF THE TIME</label>
<br>
<br></div>
<?php endwhile; ?>
(雖然為了提交回服務器,使用我假設您在資料庫中擁有的問題 ID 可能是明智的,因此您可以輕松地將答案與問題聯系起來。)
更多資訊:https : //developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/329264.html
上一篇:將負數更改為正數不起作用
