Intereting Posts
Это лучший способ двунаправленной синхронизации динамических данных в реальном времени с использованием mysql Правильный / принятый способ обновления записи ATOM API Google Analytics исключает исключение «invalid_grant» с учетной записью службы. Тот же код на двух серверах. Только один работает Невозможно установить доктрину mongodb в symfony2 с композитором Создайте всплывающее меню с родительскими элементами Функция PHP ssh2_connect не работает Арифметическая операция в конкатенации строк без круглых скобок вызывает странный результат как отключить конфигурацию базы данных в symfony2 Symfony2 Custom Field Type (Тип поля) для заполнения с помощью значений Получение времени и даты с меткой времени с помощью php symfony2 Catchable Fatal Error: объект класса не может быть преобразован в строку Загрузите содержимое URL-адреса в PHP, даже если оно возвращает 404 Выбор значения по умолчанию в выпадающем списке html PHP: сеанс не сохраняется перед перенаправлением заголовка Модуль загрузки файла jquery для отправки дополнительного параметра

Как вставить значение переключателя, которое имеет несколько имен радио в codeigniter?

Я пытаюсь сделать онлайн-опрос с помощью codeigniter, где есть динамическая викторина с каким-то предметом. Пользователь может добавить вопрос и ответ с множественным выбором в каждом вопросе. Как я могу получить значение каждого ответа в каждом ответе на множественный выбор по каждому вопросу?

<?php echo form_open_multipart('c_kuis/addKuisAnswer'); ?> <?php foreach($soalKuis as $row){?> <?php $jawab_array = array($row->pil_a,$row->pil_b,$row->pil_c,$row->pil_d); ?> <p><?=$row->soal?></p> <input type="radio" name="jawaban<?=$row->id_soal?>" value="A">A.<?=$jawab_array[0]?></input><br> <input type="radio" name="jawaban<?=$row->id_soal?>" value="B">B.<?=$jawab_array[1]?></input><br> <input type="radio" name="jawaban<?=$row->id_soal?>" value="C">C.<?=$jawab_array[2]?></input><br> <input type="radio" name="jawaban<?=$row->id_soal?>" value="D">D.<?=$jawab_array[3]?></input><br> <input type="hidden" name="id_soal_kuis" value="<?=$row->id_soal?>"></input> <br><br> <?php } ?> <button class="btn btn-primary" type="submit">Submit</button> <?php form_close(); ?> 

и это код выглядит, когда я пытаюсь проверить:

  <input type="radio" name="jawaban1" value="A">A.Hamster</input><br> <input type="radio" name="jawaban1" value="B">B.Tiger</input><br> <input type="radio" name="jawaban1" value="C">C.Shark</input><br> <input type="radio" name="jawaban1" value="D">D.Lion</input><br> <br><br> <input type="radio" name="jawaban2" value="A">A.was</input><br> <input type="radio" name="jawaban2" value="B">B.have</input><br> <input type="radio" name="jawaban2" value="C">C.am</input><br> <input type="radio" name="jawaban2" value="D">D.is</input><br> <br><br> <button class="btn btn-primary" type="submit">Submit</button> 

Вот мой контроллер выглядит так:

 public function addKuisAnswer(){ if($this->session->userdata('data_user')->level != 1){ redirect('/c_user/login'); } $id_soal_kuis = $_POST['id_soal_kuis']; $id_user = $this->session->userdata('data_user')->id_user; $answer = $_POST['jawaban']; //The Problem's here... I should put jawaban with id_soal. Because the answer named 'jawaban1','jawaban2' etc it will follow the id_soal. How can i insert it? $this->load->model('m_kuis'); $this->m_kuis->createAnswerKuis($id_soal_kuis, $id_user, $answer); echo " <script> alert('Jawaban Tugas Tersimpan!'); history.go(-2); </script>"; } 

Вот моя модель:

 public function createAnswerKuis($id_soal_kuis, $id_user, $answer){ $data = array( 'id_soal_kuis'=>$id_soal_kuis, 'id_user' => $id_user, 'jawaban_kuis' => $answer ); $this->db->set('tgl_jawab', 'NOW()', FALSE); $this->db->insert('jawab_kuis', $data); } 

Я хочу, чтобы таблица выглядела так: Это изображение таблицы базы данных, которую я сделал. Я хочу вставить данные следующим образом.

Проблема в контроллере. Как мой контроллер может name="jawaban<?=$row->id_soal?>" значение имени радиокнопки name="jawaban<?=$row->id_soal?>" В базе данных?

я надеюсь, что это небольшое изменение поможет вам

  public function addKuisAnswer(){ if($this->session->userdata('data_user')->level != 1){ redirect('/c_user/login'); } $id_soal_kuis = $_POST['id_soal_kuis']; $id_user = $this->session->userdata('data_user')->id_user; $this->load->model('m_kuis'); $i=1; while(isset($_POST['jawaban'.$i])) { $answer = $_POST['jawaban'.$i]; // var_dump($answer); $this->m_kuis->createAnswerKuis($id_soal_kuis, $id_user, $answer); $i++; } echo " <script> alert('Jawaban Tugas Tersimpan!'); history.go(-2); </script>"; } в  public function addKuisAnswer(){ if($this->session->userdata('data_user')->level != 1){ redirect('/c_user/login'); } $id_soal_kuis = $_POST['id_soal_kuis']; $id_user = $this->session->userdata('data_user')->id_user; $this->load->model('m_kuis'); $i=1; while(isset($_POST['jawaban'.$i])) { $answer = $_POST['jawaban'.$i]; // var_dump($answer); $this->m_kuis->createAnswerKuis($id_soal_kuis, $id_user, $answer); $i++; } echo " <script> alert('Jawaban Tugas Tersimpan!'); history.go(-2); </script>"; } 

вы можете изменить имя радиокнопки в последовательном порядке (потому что нет необходимости добавлять id в переключатель)

  <?php $i=1; foreach($soalKuis as $row){?> <?php $jawab_array = array($row->pil_a,$row->pil_b,$row->pil_c,$row->pil_d); ?> <p><?=$row->soal?> <input type="hidden" value=<?php echo $row->id_soal?> name='id_soal'<?= $i ?>/></p> <input type="radio" name="jawaban<?=$i?>" value="A">A.<?=$jawab_array[0]?></input><br> <input type="radio" name="jawaban<?=$i?>" value="B">B.<?=$jawab_array[1]?></input><br> <input type="radio" name="jawaban<?=$i?>" value="C">C.<?=$jawab_array[2]?></input><br> <input type="radio" name="jawaban<?=$i?>" value="D">D.<?=$jawab_array[3]?></input><br> <input type="hidden" name="id_soal_kuis" value="<?=$row->id_soal?>"></input> <br><br> <?php $i++;} ?> 

Это вопрос, который вы имели в виду:

Как я могу вставить в базу данных значение имени радиокнопки = "jawabanid_soal?>"?

или, как прочитать значение выбранного переключателя, а затем вставить его в БД?

Я отвечу на обоих. Чтобы прочитать значение ответов, вы можете использовать цикл foreach :

 <?php $egabat= array(); foreach($soalKuis as $row){ $egabat[$row->id_soal]= $_POST["jawaban".$row->id_soal]; } ?> 

Чтобы вставить значение в БД, если это MySql, я рекомендую это очень полезное руководство.

https://phpdelusions.net/pdo

 function insert($postdata) //modelfunction for insert { $array( $tablevalues= 'filed1'=>$_POST["jawaban".$row->id_soal], // consider field1 as ur table field ); $this->db->insert('table_name',$tablevalues); } 

Вы можете поместить значение $ row-> id_soal в скрытое поле имени массива при отправке формы, затем получить значения переключателя с динамическими идентификаторами, которые поступают из скрытого поля.

 <?php $egabat= array(); foreach($_POST['hiddenfield'] as $idsoal){ $egabat[$idsoal]= $_POST["jawaban".$idsoal]; } ?> 

Вот как это сделать:

 <?php echo form_open_multipart('c_kuis/addKuisAnswer'); ?> <?php foreach($soalKuis as $row){?> <?php $jawab_array = array($row->pil_a,$row->pil_b,$row->pil_c,$row->pil_d); ?> <p><?=$row->soal?></p> <input type="radio" name="jawaban[<?=$row->id_soal?>]" value="A">A.<?=$jawab_array[0]?></input><br> <input type="radio" name="jawaban[<?=$row->id_soal?>]" value="B">B.<?=$jawab_array[1]?></input><br> <input type="radio" name="jawaban[<?=$row->id_soal?>]" value="C">C.<?=$jawab_array[2]?></input><br> <input type="radio" name="jawaban[<?=$row->id_soal?>]" value="D">D.<?=$jawab_array[3]?></input><br> <input type="hidden" name="id_soal_kuis" value="<?=$row->id_soal?>"></input> <br><br> <?php } ?> <button class="btn btn-primary" type="submit">Submit</button> <?php form_close(); ?> 

и в контроллере вы будете иметь эти значения в массиве, который можно получить следующим образом:

 <?php foreach($this->input->post('jawaban') as $radio){ echo $radio; }