我试图创建一个脚本来更新多行。
为此,我创建了一个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 ;; }
我做错了什么?
谢谢你们。