我尝试使用MVC结构更新多行
我有一个html表,其中包含数据库表中的值。
我在每行插入一个复选框以检查并提交。
提交时,选中行中的所有值都会显示在文本框中以进行编辑。
编辑完成后,用户只需单击“提交”,即可更新值。
但是我在这方面遇到了一些问题,因为我使用的是MVC结构,而查询必须在模型上,并且POST必须在控制器内,所以,我有一些问题使我的代码适应MVC规则。
查看:
function update_array($update_array){
foreach($update_array as $val){
<table border='0' style='background: #1D7373; border-bottom: 1px solid #2e9c9c; color:white; width:100%;'>
<tr>
<input class='txtedit' type='hidden' name='update_job_id[".$val['job_id']."]' value=".$val['job_id']."' />
<td><input class='txtedit' type='text' name='u_description[".$val['job_id']."]' value='".$val['description']."' /></td>
<td><input class='txtedit' type='text' name='u_job_name[".$val['job_id']."]' value='".$val['job_name']."' /></td>
</tr>
</table>
模型
function printupdate($update_job_id, $checkbox, $editcheckbox, $u_job_name, $u_description, $checkedit, $savecheck){
if(isset($_POST['save']) && !empty($_POST['savecheck']))
{
$save_jo = "UPDATE job_offers SET job_name ='".$u_job_name."', description='$u_descritpion'
WHERE job_id = '".$update_job_id."' ";
$array = db_query($save_jo, '+');
echo '<pre>';
echo $u_job_name;
echo $save_jo;
echo '</pre>';
}
}
CONTROLLER
if(isset($_POST['save']) && !empty($_POST['savecheck'])){
$countChecksave = count($_POST['savecheck']);
$savecheck = $_POST['savecheck'];
foreach ($savecheck as $id){
$update_job_id = $_POST['update_job_id'][$id];
$u_job_name = $_POST['u_job_name'][$id];
$u_description = $_POST['u_description'][$id];
$checkedit = $_POST['checkedit'];
printupdate($update_job_id, $checkbox, $editcheckbox, $u_job_name, $u_description, $checkedit, $savecheck);
}
}else{
$update_job_id = NULL;
$u_job_name = NULL;
$u_description = NULL;
$checkedit = NULL;
$savecheck = NULL;
}
结果:
UPDATE job_offers SET job_name ='1', description='1'
WHERE job_id = '108'
UPDATE job_offers SET job_name ='2', description='2'
WHERE job_id = '109'
UPDATE job_offers SET job_name ='3', description='3'
WHERE job_id = '110'
UPDATE job_offers SET job_name ='3', description='3'
WHERE job_id = '110'