如何捕获提交的 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){
我有以下内容:
<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){