我有一份清单 每行都有一个公共输入字段“sort_order”,它存储在MySQL db中。
<input name="sort_order" type="text" value="<?php echo $cat['sort_order']; ?>" size="3" />
我希望能够在不进入编辑表单的情况下更改内联排序顺序。
如何将所有值都放入数据库中。我想我需要循环遍历每一行,将sort_order [row_id]和值添加到数组中。但我仍然坚持如何实现这一目标。
根据firePHP发布所有值。 sort_order [50] 1,sort_order [51] 2等。
新尝试解释:
我有一个包含2个输入字段的列表视图。
<input name="cat_id" type="hidden" value="<?php echo $cat['cat_id']; ?>" />
<input name="sort_order" type="text" value="<?php echo $cat['sort_order']; ?>" size="3" />
我有一个在控制器中调用post的函数:
public function sortOrderUpdate(){
//collect the values of cat_id and sort_order from each input into a array
//$this->request->post['sort_order']
//$this->request->post['cat_id']
//send to the model
$this->model_cat->updateCatSortOrder($sortorderarray);
}
数据库模型文件功能:
public function updateCatSortOrder($sortorderarray){
foreach((int)$sortorderarray as $sort){
$this->db->query("UPDATE cat SET sort_order='" . (int)$sort['sort_order'] . "' WHERE cat_id = '" . (int)$sort['cat_id'] . "'");
}
}
实现这一目标的最佳途径是什么?
答案 0 :(得分:1)
<input type="text" name="sort_order[]" value"<?php echo $sort_order; ?>" />
然后,您可以将输入作为数组访问,从而使您无需自行构建。它将存储为$_POST['sort_order']
(或$_GET
,具体取决于<form>
代码中指定的方法属性。
在相关的说明中,你应该在回复它时逃避$sort_order
:
<input type="text" name="sort_order[]" value"<?php echo htmlspecialchars($sort_order); ?>" />
答案 1 :(得分:0)
我不建议在html名称中使用[]。
<input type="text" name="sort_order_<?php echo $row_id; ?>" value"<?php echo $sort_order; ?>" />
说,你有50个输入字段,发布时,你可以这样建立一个数组:
$sortorder = array();
for($i=0; $i<50; $i++){
$sortorder[] = $_REQUEST['sort_order_' . $i];
}
答案 2 :(得分:0)
好的,这似乎有效:
<input name="cat_id[]" type="hidden" value="<?php echo $cat['cat_id']; ?>" />
<input name="sort_order[]" type="text" value="<?php echo $cat['sort_order']; ?>" size="3" />
控制器:
public function updateCatSortOrder(){
$sortvals = $this->request->post['sort_order']; //$this->request->post same as $_POST
$row = $this->request->post['cat_id'];
$n = count($this->request->post['cat_id']);
$sortorder = array();
for($i=0; $i<$n; $i++){
$sortorder[] = array(
'cat_id' => $row[$i],
'sort_order' => $sortvals[$i]
);
}
$this->model_cat->updateCatSortOrder($sortorder);
}
型号:
//UPDATE CAT SORT ORDER
public function updateCatSortOrder($sortorder){
foreach($sortorder as $sort){
$this->db->query("UPDATE cat SET sort_order='" . $this->db->escape($sort['sort_order']) . "' WHERE cat_id = '" . $this->db->escape($sort['cat_id']). "'");
}
}