我想从循环表中插入多个记录。每行都有隐藏的输入。
我将POST
将在循环条件中使用的表的总行数。
以下是我的观点:
<input type="hidden" name="rowcount">//total row of the table
<table class="table" id="ctable" style="border:0;">
<?php
foreach ($row12 as $row12) {
echo"<tr>
<td style='vertical-align:midle; width:175px; border:0; padding-right:20px;' align='right' ><b>".$row12->mapel_un."</b></td>
<td style='border:0;'>
<input type='hidden' name='id_peserta' value='$row13->id_peserta'>
<input type='hidden' name='id_un' value='$row12->id_un'>
<input class='form-control' type='text' name='nilai' value='$nilai' />
</td>
</tr>";
}
?>
</table>
这是我的模特:
function simpan_nilai(){
$jumlah = $this->input->post('rowcount');
$x=1;
while($x<=$jumlah){
$this->db->query("INSERT INTO nilai SET
id_peserta = '".$this->input->post('id_peserta')."',
id_un = '".$this->input->post('id_un')."',
nilai = '".$this->input->post('nilai')."' ");
$x++;
}
return "info-Data berhasil disimpan ...";
}
我只能插入最后一行数据。例如,如果数据类似于(001,1,100),(001,2,90),(001,3,95),则只将最后一行记录插入数据库,即(001,3,95) )。
请帮帮我。谢谢!
答案 0 :(得分:1)
关闭。
我已经解决了我的问题。
感谢所有帮助过我的人
查看:
<input type='text' name='rowcount'>
<table class="table" id="ctable" style="border:0;">
<?php
foreach ($row12 as $row12) {
echo"<tr>
<td style='vertical-align:midle; width:175px; border:0; padding-right:20px;' align='right' ><b>".$row12->mapel_un."</b></td>
<td style='border:0;'>
<input type='hidden' name='id_peserta' value='$row13->id_peserta'>
<input type='hidden' name='id_un$row12->id_un' value='$row12->id_un'>
<input class='form-control' type='text' name='nilai$row12->id_un' value='$nilai' />
</td>
</tr>";
}
?>
</table>
型号:
function simpan_nilai(){
$jumlah = $this->input->post('rowcount');
$x=1;
while($x<=$jumlah){
$nilai = 'nilai' . $x;
$id_un = 'id_un' . $x;
$this->db->query("INSERT INTO nilai SET
id_peserta = '".$this->input->post('id_peserta')."',
id_un = '".$this->input->post($id_un)."',
nilai = '".$this->input->post($nilai)."' ");
$x++;
}
return "info-Data berhasil disimpan ...";
}
答案 1 :(得分:0)
原因是因为您有多个同名隐藏输入char
。在PHP代码中,收到的唯一输入是同名的最后一个输入。
您可以尝试在每个输入id_peserta
后附加一个计数,以使其唯一。
name
并为您的PHP代码。
<input type="hidden" name="rowcount"> <!-- total row of the table -->
<table class="table" id="ctable" style="border:0;">
<?php
$count = 1; // You can start from zero. Either works.
foreach ($row12 as $row12) {
echo "<tr>
<td style='vertical-align:midle; width:175px; border:0; padding-right:20px;' align='right' ><b>".$row12->mapel_un."</b></td>
<td style='border:0;'>
<input type='hidden' name='id_peserta{$count}' value='$row13->id_peserta'>
<input type='hidden' name='id_un{$count}' value='$row12->id_un'>
<input class='form-control' type='text' name='nilai{$count}' value='$nilai' />
</td>
</tr>";
$count++;
}
?>
</table>