2015-03-22 2 views
2

У меня есть переключатели для каждой строки запроса. Я не знаю, как создавать их имена, так что для каждой строки запроса можно было бы переключаться на радиокнопки. Теперь я могу проверить только одно радио, но не только для каждой строки запроса. Я использую Codeigniter. Вот мое мнение:Как использовать переключатели для каждой строки запроса

?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();

Мой запрос в модели, которая возвращает этот результат:

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);

+0

В строке $ содержится id вопроса? –

ответ

2

Я не знаю, что ваш HTML в порядке или нет. Но это будет решить вашу проблему

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); 

Но помните, используйте один из них для всех 'name' => 'answer['.$key.']', или 'name' => 'answer_'.$key, Не комбинируйте оба.

+0

Как я могу получить доступ к переключателям в моей модели, чтобы вставить их в БД? Я использую их следующим образом: 'answer' => $ this-> input-> post ('answer'). Но как я могу получить к ним доступ? –

+0

, если вы используете этот 'answer ['. $ Key.']' Получить весь ответ внутри переменной, как '$ answers = $ this-> input-> post ('answer')' '$ answers' - это массив всех ответы. '$ answer [0]' - это первое выбранное значение группы, '$ answer [1]' - второе выбранное значение ответа. и для других –

+0

я теперь используется второй способ: $ данных = массив ( \t \t 'имя' => 'ответ _' $ ключ, \t \t 'значение' => '4' \t.); Но в моей модели я пишу: 'answer' => $ this-> input-> post ('answer _'. $ Key), и он не работает, ничего не вставлять. –

Смежные вопросы