Codeigniter更新数据库记录列表

时间:2014-09-09 13:05:15

标签: database codeigniter records

好的,我在视图文件记录表单db中,我正在尝试将其传递给controler,然后到我尝试进行更新的方法

$this->db->select('info');
$query = $this->db->get('pages');
 foreach ($query->result() as $q): ?>
<a href="update/updating/<?php echo $q->info?>"><?php echo $q->info . br()?></a>

在我的控制器中我有代码

public function updating($var){
        $data['info']= $var;
        $this->load->view("view_update",$data);

} 加载视图文件,我想用表单

插入新值
echo br() . $this->session->flashdata('item');
echo '<h4>Azuriranje Podataka </h4>';
echo "Old data is:" .$info;


echo form_open('update/updating');

$data = array('name'=>'field');
echo form_input().br().br();
echo form_submit('mysubmit', 'Posalji');
echo form_close()

我的问题我应该如何处理$ info我不想通过表单和输入字段提交它如何在控制器中再次抓取它?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你就做不到。

可以做的是将项目存储在cookie中(使用POST请求发送cookie),或者只使用表单。

很多地方都使用隐藏的输入字段来发送信息,如果你担心数据会被篡改,你可以使用各种散列技术来确保数据是安全的,我不会在这里深入探讨这超出了你的问题的范围,但我会在评论需要时进一步解释。

您遇到的问题相当于从 A 网站(任意网站)向您的控制器发送参数。仅仅因为视图是从您的控制器生成的,并不意味着捕获POST请求的控制器知道它来自何处或它包含什么。(这就是我们有cookie或POST数据的原因)

希望它有所帮助。

答案 1 :(得分:0)

我认为你做错了什么。

首先,您在视图文件中执行SQL select语句,这不是标准做法,并且它不符合MVC模式的精神。因此,首先要做的是实际更改使用CodeIgniter时所考虑的逻辑。这样,您的代码将更清晰,更易于维护。

在模型中,您应该编写检索数据的方法。

public function getPages(){
    $query = $this->db->get('pages');
    return $query
}

在控制器内部,您可以通过以下方式调用此模型方法:

$this->load->model("your_model");
$data["pages"]=$this->your_model->getPages();
$this->load->view("yourviewfile.php",$data);//In this line, you are passing data to the view file

在您的视图文件中,您可以浏览数据

foreach ($pages as $q)://You've passed $pages from the controller, so $pages variable is now accessible ?>
<a href="update/updating/<?php echo $q->info?>"><?php echo $q->info . br()?></a>

现在,如果要将某些数据从视图文件发送回控制器,则应使用GET或POST表单提交或AJAX调用。

POST方法示例:

<form action=<?php echo base_url()."controllerName/actionName" method="POST">
<input type="text" name="ime" />
<input type="submit" value="Submit" />
</form>