将输入收集到阵列中

时间:2018-02-07 16:50:31

标签: javascript php

我有以下代码是输入表单。

<div class="input_wrap">
       <div class="questions-field row">
              <label class="col-md-12" for="">
                <input type="text" name="questions[]" class="form-control">
            </label>
       </div>
       <button class="add_field_button">Add More input </button>
</div>

我在点击按钮后使用jQuery生成新输入。 JS看起来如下:

$(document).on("click", ".remove_field", function () {
                $(this).parent().remove();
            });

$(document).ready(function () {
            $(".add_field_button").click(function (e) {
                e.preventDefault();
                $(".input_wrap>div").append('<label class="col-md-12"for=""><a href="#" class="remove_field">Remove</a><input type="text" name="questions[]" class="form-control col-md-10"></label>'); //add input box
            });
        });

所以每个人都可以正常工作,我使用PHP来获取包含填充输入的数组(问题[])

所以,当我填充5个输入时,我得到的数组看起来像:

Array
(
    [0] => rgerg
    [1] => qwd
    [2] => ffr
    [3] => fffffffffffffff
    [4] => ggggggggggggg
)

我想要的是动态地添加一个而不是2个输入,其中第一个是问题,第二个是答案。类似的东西:

 Array
        (
            [0] => array('rgerg','text associated to rgerg')
            [1] => array('qwd','text associated to qwd')
            [2] => array('ffr','text associated to ffr')
            .
            .
            .
        )

怎么做?提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果您在名称中为两个字段指定相同的索引,则可以将问题与相应的答案相关联。例如,使用此name属性

问题:

<input type="text" name="questions[0][]" value="Question 1" />

答案:

<input type="text" name="questions[0][]" value="Answer 1" />

(是的,名字完全相同)

PHP端的结果$_POST将具有所需的结构:

Array
(
    [questions] => Array
        (
            [0] => Array
                (
                    [0] => Question 1
                    [1] => Answer 1
                )

            [1] => Array
                (
                    [0] => Question 2
                    [1] => Answer 2
                )

        )

)

当然,您需要在每个问题的名称中增加索引:

name="questions[0][]" // First question
name="questions[1][]" // Second question
name="questions[2][]" // Third question

答案 1 :(得分:1)

您可以添加问题和相应的答案,如下所述:

<input type="text" name="quiz[0][question]" class="form-control">
<input type="text" name="quiz[0][answer]" class="form-control">

<input type="text" name="quiz[1][question]" class="form-control">
<input type="text" name="quiz[1][answer]" class="form-control">

<input type="text" name="quiz[2][question]" class="form-control">
<input type="text" name="quiz[2][answer]" class="form-control">
  

$ _ POST将在数组下面返回:

Array
(
    [quiz] => Array
        (
            [0] => Array
                (
                    [question] => ques1
                    [answer] => ans1
                )

            [1] => Array
                (
                    [question] => ques2
                    [answer] => ans2
                )

            [2] => Array
                (
                    [question] => ques3
                    [answer] => ans3
                )

        )
)