【发布时间】:2015-06-02 09:34:18
【问题描述】:
我制作了一个表单,可以从数据库中提取数据,然后将其查看为可以由用户编辑的表格。数据库中的数据只包含1个长度整数,1和0。如果数据库中的数据为1,则勾选复选框,否则不勾选。
查询和查看数据的代码如下所示:
<table class="tabel-lebar">
<tr>
<th width="30px">ID</th>
<th width="80px">LEVELMN</th>
<th>NAMA</th>
<th>STATUS</th>
<th>ENTRY</th>
<th>VIEW</th>
<th>MODIFY</th>
<th>DELETE</th>
<th>APPROVAL</th>
</tr>
<?php
$lpd = new lvl_permission_dtl();
$perms = $lpd->getDetail($pdo, 'viewormod', $_GET['id']);
$colLength = 9; //hard-coded column length nya (bukan total kolom nya, tapi kolom yang mau diambil aja
//print_r($perms[0][1]);
for($row=0; $row<count($perms); $row++){
echo "<tr>";
echo "<td width='30px'> <input readonly type='text' name='idnya[]' id='idnya[]' value='". $perms[$row][0] ."' /> </td>";
echo "<td width='80px'> <input disabled type='text' name='levelmn' id='levelmn' value='". $perms[$row][1] ."' /> </td>";
echo "<td> <input disabled type='text' name='namanya' id='namanya' value='". $perms[$row][2] ."' /> </td>";
echo "<td> <input type='checkbox' value='". $perms[$row][3] ."' name='statusnya[]' id='statusnya[]'". (($perms[$row][3]==1) ? 'checked' : '') ." /> </td>";
echo "<td> <input type='checkbox' value='". $perms[$row][4] ."'name='entrynya[]' id='entrynya[]'". (($perms[$row][4]==1) ? 'checked' : '') ."/> </td>";
echo "<td> <input type='checkbox' value='". $perms[$row][5] ."'name='viewnya[]' id='viewnya[]'". (($perms[$row][5]==1) ? 'checked' : '') ." /> </td>";
echo "<td> <input type='checkbox' value='". $perms[$row][6] ."'name='modifynya[]' id='modifynya[]'". (($perms[$row][6]==1) ? 'checked' : '') ." /> </td>";
echo "<td> <input type='checkbox' value='". $perms[$row][7] ."'name='deletenya[]' id='deletenya[]'". (($perms[$row][7]==1) ? 'checked' : '') ." /> </td>";
echo "<td> <input type='checkbox' value='". $perms[$row][8] ."'name='approvalnya[]' id='approvalnya[]'". (($perms[$row][8]==1) ? 'checked' : '') ." /> </td>";
echo "</tr>";
}
?>
</table>
<div class="clear"></div>
<input type="submit" name="btnSubmit" id="btnSubmit" value="Save" />
当用户更改表单中的数据(通过复选框)时,数据应在 DB 中更新。但是有一个问题,无论我在哪里编辑复选框,提交的数据都没有改变。我知道通过打印包含表单值的数组..
我做的代码是这样的:
$details = array();
$details_length = 13; //jumlah detail yang ada di form nya
for($i=0; $i<$details_length; $i++){ //masukin objek Permision_dtl nya ke array $details
$pdtl = new Permission_dtl();
$pdtl->setID($_POST['idnya'][$i]);
$pdtl->setStatus((!empty($_POST['statusnya'][$i])) ? 1 : 0);
$pdtl->setEntry((!empty($_POST['entrynya'][$i])) ? 1 : 0);
$pdtl->setView((!empty($_POST['viewnya'][$i])) ? 1 : 0);
$pdtl->setModify((!empty($_POST['modifynya'][$i])) ? 1 : 0);
$pdtl->setDelete((!empty($_POST['deletenya'][$i])) ? 1 : 0);
$pdtl->setApproval((!empty($_POST['approvalnya'][$i])) ? 1 : 0);
$details[$i] = $pdtl;
//$statDetails = $pdtl->changeDetail($pdo, 'all', '');
}
print_r($details[0]);
谁能帮我解决这个问题? :)
【问题讨论】: