Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用CodeIgniter将使用foreach循环从视图获得的数据存储到数据库中_Php_Mysql_Codeigniter_Foreach - Fatal编程技术网

Php 使用CodeIgniter将使用foreach循环从视图获得的数据存储到数据库中

Php 使用CodeIgniter将使用foreach循环从视图获得的数据存储到数据库中,php,mysql,codeigniter,foreach,Php,Mysql,Codeigniter,Foreach,我试图将从表单获得的值存储到数据库中。我被困在不知道如何从foreach($row作为$questions)分别获取值并将其存储到数据库中的地方 “我的数据库”表包含以下列: variantid | stepid | questionid | newquestion | radiovalues | description 当我单击save时,我正试图将从视图中获得的所有详细信息保存到数据库中。通过foreach($questions as$row)的每个循环获得的每个值都需要存储在新行中。我想

我试图将从表单获得的值存储到数据库中。我被困在不知道如何从
foreach($row作为$questions)
分别获取值并将其存储到数据库中的地方

“我的数据库”表包含以下列:

variantid | stepid | questionid | newquestion | radiovalues | description
当我单击save时,我正试图将从视图中获得的所有详细信息保存到数据库中。通过
foreach($questions as$row)的每个循环获得的每个值都需要存储在新行中。我想我应该使用
insert\u batch
,但我不知道如何将所有数据放入数组中

我怎样才能继续呢?下面是我编写的代码。我没有在模型中写任何东西,因为我被卡住了

 <form id="theform">
  <label for="variants">Variants:</label><br>
          <?php
          foreach($variants as $row)
          {?>
               <div class="form-group">

              <input type="radio" name="variants[]" checked="true" id="variants" value="<?php echo $row->variantid ?>"/><?php echo $row->variantname ?><br/>

         <?php }

          ?>


<div id='steplist'>
   <?php

     foreach($substeps as $row){
         ?>
               <div id='img_div'>
                 <input type="radio" name="stepid[]" checked="true" id="stepid<?php echo $row->stepid; ?>" value="<?php echo $row->stepid;     ?>"/><?php echo $row->stepname ?><br/>
</div>
    <?php
  foreach($questions as $each){
  ?><br><br>
  <input type="text" name="questions[]" id="questions<?php echo $each->questionid; ?>" value="<?php echo $each->questionname; ?>" readonly/><br/>
<input type="hidden" name="questionid[]" id="questions<?php echo $each->questionid; ?>" value="<?php echo $each->questionid; ?>"/>

<a id="addq">Add question</a>
<input type="text" class="form-control" name="newquestion[]" style="font-weight:bold;width:100%;height:5%" id="new_questions<?php echo $each->questionid; ?>" /><br>

  <div class="radio" id="answer">
  <label style="font-weight:bold"><input type="radio" name="radioquestions[<?php echo $each->questionid; ?>][optradio]" value="no" required>no</label>
  <label style="font-weight:bold"><input type="radio" name="radioquestions[<?php echo $each->questionid; ?>][optradio]" value="probably no" required>probably no </label>
  <label style="font-weight:bold"><input type="radio" name="radioquestions[<?php echo $each->questionid; ?>][optradio]" value="unknown" required>unknown</label>
  <label style="font-weight:bold"><input type="radio" name="radioquestions[<?php echo $each->questionid; ?>][optradio]" value="probably yes" required>probably yes</label>
  <label style="font-weight:bold"><input type="radio" name="radioquestions[<?php echo $each->questionid; ?>][optradio]" value="yes">yes</label>
</div>
<textarea name="question1_text[]" id="description<?php echo $each->questionid; ?>" rows="3" cols="73"></textarea><br>
<?php
}
   ?>
  <?php
  }
  ?>

</div>
</form>
      <input type='button' value='Save' class='save' id='save' />
<script>
    $(document).ready(function(){
   $("#save").click(function(e){
     e.preventDefault();
         $.ajax({
             type:"POST",
             url:"<?= base_url() ?>index.php/task/perform",
             data:$('#theform').serialize(),

               success:function(response){

            alert(response);

           }
         });
   });
 });
更新
谢谢你的快速回复。我根据建议更改了代码。如何将这些值输入控制器并发送到数据库?

foreach中的HTML无效,因为它缺少结束div标记,并且您的输入没有正确的
name
属性,对于多个输入,您应该使用
variants[]
而不是相同的ID。请按照以下方式执行:

<?php foreach ($variants as $row) { ?>
    <div class="form-group">
        <input type="radio" name="variants[]" checked="true" class="variants" value="<?php echo $row->variantid ?>"/><?php echo $row->variantname ?><br/>
    </div>
<?php } ?>


HTML上不能有多个id相同的。您正在foreach上创建多个输入,它们都具有相同的id“变体”另一个问题,您在另一个foreach中有一个foreach(用于问题和子步骤),但您对它们使用相同的变量($row),因为内部foreach使用的范围与外部foreach相同,$行将被覆盖。显示模型代码
$result=$this->task_model->performdata()
<?php foreach ($variants as $row) { ?>
    <div class="form-group">
        <input type="radio" name="variants[]" checked="true" class="variants" value="<?php echo $row->variantid ?>"/><?php echo $row->variantname ?><br/>
    </div>
<?php } ?>