为什么我无法更新多行?

时间:2014-04-19 17:06:34

标签: php

我尝试使用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'  

0 个答案:

没有答案