Вопрос по html, php – выбрать несколько вариантов

2

ударился головой о стену за что-то, казалось бы, мёртвое простое.

Вот:

<html>
    <head></head>
    <body>
        <form method="post" action="action.php">
            <div><input type="checkbox" name="test" value="Newspaper"> <span >Newspaper</span></div>
            <div><input type="checkbox" name="test" value="PC"> <span >PC</span></div>
            <div><input type="checkbox" name="test" value="Home"> <span >Home</span></div>
            <div><input type="checkbox" name="test" value="Dont_know"> <span >dnunno</span></div>
            <input type="submit" name="Submit" value="send">
        </form>
    </body>
</html>

Но когда я выбираю более одного варианта. Я вижу в моемprint_r($_POST); Заявление только последний выбранный вариант вместо всех выбранных параметров. Как мне с этим бороться?

Обновить: Я проверил остальную часть своего кода и увидел, что это делается с помощью некоторого JavaScript.

else if (aform.validatorArr[i][4] == "checkbox") {
    var fvs = "";
    eval("var chkbArray=aform." + aform.validatorArr[i][1] + ";");
    if (aform.validatorArr[i][2] == "cb_true") {
        for (k = 0; k < chkbArray.length; k++) {
            if (chkbArray[k].checked) {
                fvs += chkbArray[k].value;
                console.log(fvs);
            }
        }
        if (fvs == false) {
            s += aform.validatorArr[i][3] + "\n";
        }
    }
}

Вот почему [] не добавлено в мой HTML. Но как я могу изменить этот код, чтобы он принимал все варианты?

Ваш Ответ

1   ответ
15

Поставьте [] после имени:

<input type="checkbox"  name="test[]" value="Newspaper">

УвидетьPHP FAQ Больше подробностей.

@sanders - код, который вы опубликовали, является выдержкой, и его действительно трудно понять, не видя остальной части того, что происходит. Из того, что я могу собрать, переменная fvs представляет собой объединение всех значений из выбранных флажков, но я не вижу, куда это идет.
Затем вы можете использовать foreach ($ _ POST [& quot; test & quot;] как $ test) {...}
Спасибо, я обновил свой пост. sanders

Похожие вопросы