我正在使用CodeIgniter框架并从html表单中获取值。
目前我正在准备具有固定输入数量的数组,ques_X是输入,但是当ques_x数字增加时,我需要手动添加每个密钥对值,如ques_11,ques_12 ......
$answers = array(
'ques_1' => $this->input->post('ques_1', TRUE),
'ques_2' => $this->input->post('ques_2', TRUE),
'ques_3' => $this->input->post('ques_3', TRUE),
'ques_4' => $this->input->post('ques_4', TRUE),
'ques_5' => $this->input->post('ques_5', TRUE),
'ques_6' => $this->input->post('ques_6', TRUE),
'ques_7' => $this->input->post('ques_7', TRUE),
'ques_8' => $this->input->post('ques_8', TRUE),
'ques_9' => $this->input->post('ques_9', TRUE),
'ques_10' => $this->input->post('ques_10', TRUE))
是否可以使用for
或foreach
循环创建内容?
答案 0 :(得分:2)
您可以像这样创建for
循环:
$answers = array();
for($i = 1; $i <= 10; ++$i){
$answers['ques_'.$i] = $this->input->post('ques_'.$i, TRUE);
}
答案 1 :(得分:2)
使用数组而不是ques_n
为输入命名。
<input type="text" name="questions[]" value="value1"/>
<input type="text" name="questions[]" value="value2"/>
<input type="text" name="questions[]" value="value3"/>
然后你可以得到这样的数据:
$answers = $this->input->post('questions', TRUE)
;
根据rjcod的评论进行编辑:
你也可以像这样生成输入,并且仍然使用相同的php代码:
<input type="text" name="questions[0]" value="value1"/>
<input type="text" name="questions[1]" value="value2"/>
<input type="text" name="questions[2]" value="value3"/>
<!-- This 3 radio buttons are grouped, you can also wrap them in
fieldset if you want -->
<input type="radio" name="questions[3]" value="1"/>
<input type="radio" name="questions[3]" value="2"/>
<input type="radio" name="questions[3]" value="3"/>
答案 2 :(得分:0)
你可以试试这个:
$data = array();
$post_length = sizeof($_POST);
for($i = 1; $i <= $post_length; ++$i){
$data ['ques_'.$i] = $this->input->post('ques_'.$i, TRUE);
}
或者你可以使用完全动态的。
$data = array();
foreach($_POST as $key=>$value)
{
$data [$key] = $this->input->post($key, TRUE);
//or
//$data [$key] = $value;
}