好的,我在视图文件记录表单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我不想通过表单和输入字段提交它如何在控制器中再次抓取它?
答案 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>