0

我有某个学期的上传结果表。我收集了某个学期的所有科目和学生名单。但我的问题是我无法将结果插入数据库。只插入一行,

控制器

    $data=array();
    for($i=0;$i<count($_POST['Number']);$i++){
            if($_POST['Number'][$i] != ''){
                $data=array(
                        'Id'=>$_POST['id'][$i],
                        'Dept'=>$_POST['Dept'][$i],
                        'SubjectCode'=>$_POST['sCode'][$i],
                        'SubjectName'=>$_POST['sName'][$i],
                        'Semister'=>$_POST['Semister'][$i],
                        'MidNumber'=>$_POST['Number'][$i]
                        );
                $this->load->model('Upload_Result_model');
                $this->Upload_Result_model->upload_midResult($data);
            }
    }

形式:

<table>
<tr>
    <th>Student ID</th>
    <?php foreach($subjects as $s):?>
    <th><?php echo $s->subjectName;   echo "<br>";   echo "(".$s->subjectCode.")"; ?></th>
    <?php foreach($student as $st):?>
    <input type='hidden' id='id[]' name='id[]' value='<?php echo $st->Id;?>'>
    <?php endforeach;?>
    <input type='hidden' name='Dept[]' id='Dept[]' value=<?php echo $Dept;?>>
    <input type='hidden' name='Semister[]' id='Semister[]' value=<?php echo $Semister;?>>
    <input type='hidden' id='sCode[]' name='sCode[]' value='<?php echo $s->subjectCode?>'>
    <input type='hidden' id='sName[]' name='sName[]' value='<?php echo $s->subjectName?>'>
    <?php endforeach;?>
</tr>
<?php foreach($student as $st):?>
<tr>
    <td><?php echo $st->Id?></td>
    <?php for($i=0;$i<count($subjects);$i++):?>
    <td><input type='text' size='7' id='Number[]' name='Number[]'/></td>
    <?php endfor;?>
</tr>

如果有人解决这个问题,对我会有很大帮助

4

2 回答 2

1

我不认为 html 表单元素会以数组形式出现在 php 中。尝试print_r($_POST);查看传递的变量及其值。他们可能只是逗号分隔。

我认为你可能需要做类似的事情$_POST['id']=explode(',',$_POST['id']);来解决你的问题

Numbers变量还存在您应该研究的其他问题

于 2013-04-14T08:08:14.260 回答
0

我认为

    foreach($student as $st):

应该在之后。现在您打开多行,但不关闭它们。此外,ID 在 2 for 循环内,因此它们比其他元素更多,我不确定这是否是您尝试做的。

因此,如果可以,您可以尝试:

    $Numbers = @$_POST['Number'];
    $ids = @$_POST['id'];

    foreach($Numbers as $a => $b)
    {
      if($Numbers[$a]!='')
      { 
         $data=array(
                    'Id'=>$ids[$a];, ... }
      }
    }
于 2013-04-14T07:49:57.157 回答