我有一个列表,每一行都有一个公共的输入字段"sort_order“,它存储在MySQL数据库中。
 <input name="sort_order" type="text" value="<?php echo $cat['sort_order']; ?>" size="3" />我希望能够以内联方式更改排序顺序,而无需进入编辑表单。
如何将所有的值都放入数据库。我认为我需要遍历每一行,将sort_orderrow_id和value添加到一个数组中。但我被困在如何实现这一点上。
所有的值都是根据firePHP发布的。sort_order50 1、sort_order51 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'] .  "'");
    }
}实现这一目标的最好方法是什么?
发布于 2011-06-07 03:57:30
好的,这看起来是可行的:
<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']).  "'");
   }
 }https://stackoverflow.com/questions/6246219
复制相似问题