Reputation: 718
I have radio buttons for each row of a query. I don't know how to create their names, so that for each row of a query, radio buttons could be checked. Now I can check only one radio of all, but not only for each query row. I'm using Codeigniter. That's my view:
?php
echo validation_errors();
foreach ($question as $row)
{
echo form_open();
echo "<tr><td>";
echo "$row->question";
echo "</td></tr>";
echo "<tr><td>";
$data=array(
'name' => 'answer',
'value' => '1'
);
echo form_radio($data);
$data=array(
'name' => 'answer',
'value' => '2'
);
echo form_radio($data);
$data=array(
'name' => 'answer',
'value' => '3'
);
echo form_radio($data);
echo "</td></tr>";
echo form_submit($data);
echo form_close();
My query in model, which returns this result is:
public function survey_show() {
$this->db->select('question_id, question');
$this->db->from('questions');
$result=$this->db->get();
return $result->result();
}
public function survey_fill()
{
if (null !==($this->input->post('submit'))) {
$date = new DateTime("now");
$data = array(
'user_id'=>$this->session->userdata['user_id'],
'question_id'=>$this->input->post('question_id'),
'answer'=>$this->input->post('answer_1'),
'created_at'=>$date->format('Y-m-d H:i:s')
);
$this->db->insert('survey_answers', $data);
Upvotes: 2
Views: 615
Reputation: 7134
I don't know your HTML is OK Or Not. But this will solve your problem
foreach ($question as $key=>$row)
{
echo form_open();
echo "<tr><td>";
echo "$row->question";
echo "</td></tr>";
echo "<tr><td>";
$data=array(
'name' => 'answer['.$key.']',//or this 'name' => 'answer_'.$key,
'value' => '1'
);
echo form_radio($data);
$data=array(
'name' => 'answer['.$key.']',
'value' => '2'
);
echo form_radio($data);
$data=array(
'name' => 'answer['.$key.']',
'value' => '3'
);
echo form_radio($data);
But remember use one of them for all 'name' => 'answer['.$key.']',
or 'name' => 'answer_'.$key,
Don't combine both.
Upvotes: 2