PHP - Foreach无法识别ID

时间:2014-04-20 15:47:39

标签: php arrays forms

我试图创建一个脚本来更新多行。

为此,我创建了一个html表,其中包含来自一个特定数据库表的所有值。

我插入每个html行,一个复选框进行检查,然后提交。

提交后,所有选中的行值都显示在文本框中,如下所示:

http://i.imgur.com/nnG1mgf.png

用户只需要编辑复选框并保存。

问题是,我正在使用MVC做这个项目,而且我的脚本只有在我在foreach中插入帖子时才有效,如下所示:

function confirmedit($checkbox, $editcheckbox, $u_job_name, $checkedit, $savecheck) 
{    
    if (is_array($savecheck)) {

        foreach ($savecheck as $id) {

            $u_job_name =  $_POST['u_job_name'][$id];

            $save_jo    = "UPDATE job_offers SET job_name ='".$u_job_name."' ".
                          "WHERE job_id =  '".$id."' ";

            $array = db_query($save_jo, '+');


            echo '<pre>', $save_jo, '</pre>';

        }

    }

}

但是我在MVC中做这个项目,我不能把POST放在模型中。

所以我决定将POST放在控制器内:

if (isset($_POST['save']) && !empty($_POST['savecheck'])) {

    $countChecksave = count($_POST['savecheck']);
    $savecheck = $_POST['savecheck'];
    $checkedit = $_POST['checkedit'];

    foreach ($savecheck as $id) {

        $u_job_name =  $_POST['u_job_name'][$id];

    }
} else {    
    $u_job_name = NULL;
}

恢复,我的查询在模型中的foreach内部,POST在控制器内。

但它无法正常工作,因为他无法识别文本框中的ID,我更新了三行,我在每个文本框上写了1,2,3,我对查询进行了回显,我的查询是这样做的:

UPDATE job_offers SET job_name ='3' WHERE job_id =  '186' 
UPDATE job_offers SET job_name ='3' WHERE job_id =  '188' 
UPDATE job_offers SET job_name ='3' WHERE job_id =  '190' 

我的查询三次读取相同的文本框ID

这里的观点:

foreach($update_array as $val){
echo "
    <table>
    <tr>
      <td><input class='txtedit' type='text' name='u_job_name[".$val['job_id']."]' value='".$val['job_name']."' /></td>

      <td><input style='width: 50px;' class='savecheck' type='checkbox' name='savecheck[]' value=".$val['job_id']." /></td>

    </tr>
    </table>

&#34 ;;     }

我做错了什么?

谢谢你们。

0 个答案:

没有答案