php name HTML:單選按鈕數組




input radio value (4)

我想你需要從另一個方向來看,像這樣

<label>Cats</label>
<input type="radio" name="Cats" value="Love"/> Love
<input type="radio" name="Cats" value="Like"/> Like
<input type="radio" name="Cats" value="Dislike"/> Dislike 
<input type="radio" name="Cats" value="Hate"/> Hate

在服務器端,像這樣:

$loves=array();
$likes=array();
$dislikes=array();
$hates=array();

然後遍歷$ _POST,檢查值,如果它符合你期望的四個值中的任何一個,則將該名稱推入適當的數組中。

好的,所以,在處理單選按鈕數組時比其他線程有不同的問題。

我想這樣做,根據選擇的答案,值被保存在不同的數組,但我不想讓用戶能夠從同一個問題中選擇多個選項。

例:

Question 1
<input type="radio" name="Array1[]" value="question1"/>
<input type="radio" name="Array2[]" value="question1"/>
<input type="radio" name="Array3[]" value="question1"/>
<input type="radio" name="Array4[]" value="question1"/>

Question 2
<input type="radio" name="Array1[]" value="question2"/>
<input type="radio" name="Array2[]" value="question2"/>
<input type="radio" name="Array3[]" value="question2"/>
<input type="radio" name="Array4[]" value="question2"/>

這樣做的目的是讓我可以把問題本身安排在四個類別中的一個中,並將每個問題填充到分配給他們的問題中。

例:

假設4個問題,答案是1,3,1,2,我想要的結果數組是:

Array1[0] = "question1"
Array1[1] = "question3"

Array2[0] = "question4"

Array3[0] = "question3"

Array4[] = Empty array

可以做到這一點,或者我需要一個不同的方法來獲得所需的輸出? 順便說一下,我計劃使用PHP來處理這個表單。

編輯:一些更多的細節。 一個示例用法。

<h1>What are your preferences?</h1>
<form type=...etc.>
    <label>Cats</label>
    <input type="radio" name="Love[]" value="Cats"/>
    <input type="radio" name="Like[]" value="Cats"/>
    <input type="radio" name="Dislike[]" value="Cats"/>
    <input type="radio" name="Hate[]" value="Cats"/>
    <label>Dogs</label>
    <input type="radio" name="Love[]" value="Dogs"/>
    <input type="radio" name="Like[]" value="Dogs"/>
    <input type="radio" name="Dislike[]" value="Dogs"/>
    <input type="radio" name="Hate[]" value="Dogs"/>
    <label>Ferrets</label>
    <input type="radio" name="Love[]" value="Ferrets"/>
    <input type="radio" name="Like[]" value="Ferrets"/>
    <input type="radio" name="Dislike[]" value="Ferrets"/>
    <input type="radio" name="Hate[]" value="Ferrets"/>
    <label>Turtles</label>
    <input type="radio" name="Love[]" value="Turtles"/>
    <input type="radio" name="Like[]" value="Turtle"/>
    <input type="radio" name="Dislike[]" value="Turtles"/>
    <input type="radio" name="Hate[]" value="Turtles"/>
<form>

Answer #1

你可以像array []一樣創建數組,但是在單選按鈕中,我們必須動態地為array [1],array [2] ...賦予索引。 我們給名稱像radioArray []像其他輸入類型=“fname []”,但它不會自動增加索引,我們必須增加索引與額外的變量。

  e.g name= "$radiArray[1] = 'val1'"; //give index like 1,2,3 ...
      name ="$radiArray[2] = 'val2'"; ....

Answer #2

每個名稱只能選擇一個單選按鈕,所以如果您有不同的名稱(和您一樣),用戶將能夠為每個問題選擇多個單選按鈕。 我很抱歉地說,但是你提出的建議是行不通的。 相反,你將不得不保留一個手動的數字回答相應的問題。 似乎你提前知道所有的答案,所以這不應該是一個很大的交易。


Answer #3

我想你可以猜測,這個名稱將復選框分組,所以你想這樣做的方式是不合理的,沒有javascript。 我建議你為每個問題的複選框命名,然後你可以使用PHP將它們分組。 例如,如果你得到答案1,3,1,2,你可以push它們push入適當的數組中。 這將是這樣的。 但這不是餅乾的證據

        <form method="post">
            <input type="radio" name="v1" id="v1-1" value="1"/><label for="v1-1">1-1</label><br/>
            <input type="radio" name="v1" id="v1-2" value="2"/><label for="v1-2">1-2</label><br/>
            <input type="radio" name="v1" id="v1-3" value="3"/><label for="v1-3">1-3</label><br/>

            <input type="radio" name="v2" id="v2-1" value="1"/><label for="v2-1">2-1</label><br/>
            <input type="radio" name="v2" id="v2-2" value="2"/><label for="v2-2">2-2</label><br/>
            <input type="radio" name="v2" id="v2-3" value="3"/><label for="v2-3">2-3</label><br/>

            <input type="radio" name="v3" id="v3-1" value="1"/><label for="v3-1">3-1</label><br/>
            <input type="radio" name="v3" id="v3-2" value="2"/><label for="v3-2">3-2</label><br/>
            <input type="radio" name="v3" id="v3-3" value="3"/><label for="v3-3">3-3</label><br/>

            <input type="radio" name="v4" id="v4-1" value="1"/><label for="v4-1">4-1</label><br/>
            <input type="radio" name="v4" id="v4-2" value="2"/><label for="v4-2">4-2</label><br/>
            <input type="radio" name="v4" id="v4-3" value="3"/><label for="v4-3">5-3</label><br/>
            <input type="submit" value="vote"/>
        </form>
<?php
if(! empty($_POST))
{
    $plausible_answers = array(1,2,3,4);
    $answers = array();
    for($i=1;! empty($_POST["v$i"]);++$i)
    {
        if(in_array($_POST["v$i"], $plausible_answers))
        {
            $answers[$_POST["v$i"]][] = $i;
        }
    }
    print_r($answers);
}
?>




radio-button