Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在循环中发布变量?_Php - Fatal编程技术网

Php 如何在循环中发布变量?

Php 如何在循环中发布变量?,php,Php,我想发布一些包含在循环中的输入。问题是,当我单击sumbit按钮时,只会发布输入的最后一个值。有什么建议吗 while ($i <= $number) { echo '<label class="col-6 col-lg-4 col-form-label">Question ' . $i . '</label><br> <input class="col-6 col-lg-6 form-control" name="questio

我想发布一些包含在循环中的输入。问题是,当我单击sumbit按钮时,只会发布输入的最后一个值。有什么建议吗

while ($i <= $number) {
    echo '<label class="col-6 col-lg-4 col-form-label">Question ' . $i . '</label><br>
    <input class="col-6 col-lg-6  form-control" name="question" id="question" placeholder="Type your question" required/><br>
    <div class="form-group row">
        <label class="col-6 col-lg-4 col-form-label">Answer 1</label>
        <div class="col-6 col-lg-8 d-flex align-items-center">
            <input name="correct_answer"  type="text" placeholder="Correct answer goes here" required/>
        </div>
    </div>
    <div class="form-group row">
        <label class="col-6 col-lg-4 col-form-label">Answer 2</label>
        <div class="col-6 col-lg-8 d-flex align-items-center">
            <input name="wrong_answer" type="text" placeholder="Type a wrong answer" required/>
        </div>
    </div>
    <div class="form-group row">
        <label class="col-6 col-lg-4 col-form-label">Answer 3</label>
        <div class="col-6 col-lg-8 d-flex align-items-center">
            <input name="wrong_answer2" type="text" placeholder="Type a wrong answer" required/>
        </div>
    </div><hr>';

    $i++;

    if(isset($_POST['question'])) {
        $question = $_POST['question'];
        echo $question;
    }

}

while($i这是正常的,因为您删除了每个输入的名称,并且只在循环中发送最后的输入
为了避免这种情况,您可以在输入或选择中添加[]作为每个名称的后缀。。。
例如:


玩得开心:)

输入具有相同的名称。这意味着,如果它们的格式相同,则最后一个将覆盖其他格式。例如,您可以使用
$i
变量使所有名称唯一

另一个解决方案是使用阵列。介绍阵列解决方案

 <input name="wrong_answer2[]" type="text" placeholder="Type a wrong answer" required/>
$wrong_answer2 = (array) $_POST['wrong_answer2'];