如何捕获提交的 POST 名称

How to capture submitted POST name

我有以下内容:

<form class="" id="quiz_form" action="" method="post">
    <input type="text" name="<?php echo $question_id; ?>[]" value="answer">
    <input type="text" name="<?php echo $question_id; ?>[]" value="answer">
    <input type="button" onclick="submitQuiz()">
</form>

这些输入在 foreach 内,所以 name 属性的值总是不同的。

POST发送如下:

function submitQuiz() {
    $.ajax({
        url: '<?php echo site_url('home/submit_avaliacao'); ?>',
        type: 'post',
        data: $('form#quiz_form').serialize(),
        success: function(response) {
            $('#quiz-body').hide();
            $('#quiz-result').html(response);
        }
    });
}

我尝试这样处理数据:

foreach ($this->input->post(NULL, TRUE) as $row){
            foreach ($row as $key=>$value){
                $data_answer['question_id'] = $key;
                $data_answer['answer'] = $value;
                $this->crud_model->av_insert_answer($data_answer);
            }
        }

问题是 $key 的值对于所有输入总是 0,而对于 $value 则没问题。

我认为这是由于输入 name 中的 [ ],但如果我删除它们,则不会发送数据。如何解决?

我用这种方法测试过,也没用:

 foreach ($_POST as $row){
            foreach ($row as $key=>$value){
                $param_name = 'mqc';
                if(substr($key, 0, strlen($param_name)) == $param_name) {
                    $data_answer['question_id'] = $key;
                    $data_answer['answer'] = $value;
                }
            }
        }

在这种情况下,我在输入名称中添加了文本 "mqc",但无济于事。

print_r($this->input->post(NULL, TRUE)) 的输出:

Array
(
    [8] => Array
        (
            [0] => answer input 1
        )

    [7] => Array
        (
            [0] => answer input 2
        )

    [9] => Array
        (
            [0] => answer input 3
        )

)
Array
(
    [8] => Array
        (
            [0] => answer input 1
        )

    [7] => Array
        (
            [0] => answer input 2
        )

    [9] => Array
        (
            [0] => answer input 3
        )

)
Array
(
    [8] => Array
        (
            [0] => answer input 1
        )

    [7] => Array
        (
            [0] => answer input 2
        )

    [9] => Array
        (
            [0] => answer input 3
        )

)
foreach ($_POST as $row){ //first
   var_dump($row);
   foreach ($row as $key=>$value){
      //...
   }
}

<form action="test1.php" method="post">
<input type="text" name="34[]">
<input type="text" name="35[]">
<input type="submit">
</form>

我检查了变量 $row 包含的内容:

array(1) { [0]=> string(2) "ww" } array(1) { [0]=> string(2) "ss" }

并且它清楚地看到变量 $key 始终包含值零。

在第一个 foreach 中添加一个键,您将获得您的 ID:

foreach ($_POST as $keyRow => $row){