我正在开发一个处理大量表单的项目。我搜索并尝试了搜索结果,但没有一个工作。
我的代码查看代码" uprofile.php"如下:
<form class="form-horizontal" method="post" action='<?php echo base_url() . "home/addnewagency" ?>'>
<div class="form-group">
<label for="company" class="col-sm-3 control-label">New Agency Name:</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="newagency" name="newagency" placeholder="Plase Enter New Agency Name">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" class="btn btn-primary">Add</button>
</div>
</div>
</form>
我的控制器&#34; home.php&#34;代码如下:
public function addnewagency() {
$newagency = $this->input->post('newagency');
$this->dis_model->newagency_model(strtoupper($newagency));
$this->loadprofile();
}
public function loadprofile() {
$data['inscompanyname'] = $this->dis_model->getcompany();
$data['agentname'] = $this->dis_model->getagent();
$data['agencyname'] = $this->dis_model->getagency();
$data['clientname'] = $this->dis_model->getclient();
$data['deptname'] = $this->dis_model->getdept();
$this->load->view('uprofile', $data);
}
当我提交表单时,控件将传递给addnewagency()
数据插入数据库,URL为http://localhost/dis/home/addnewagency
。回到调用函数后,它转到loadprofile()
并加载视图uprofile
。但是,URL仍然保持不变。但是,我希望它为 http://localhost/dis/home/login ,并且还想传递数据。有没有人知道如何实现这个目标?
欢迎所有积极的建议......
提前致谢...
答案 0 :(得分:4)
现在你在addnewagency()中调用$ this-&gt; loadprofile()。如果要更改URL,则需要使用CodeIgniter的redirect()函数。
替换
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell : QuestionsListCell = self.questionsTableView.dequeueReusableCellWithIdentifier("QuestionsListCell") as! QuestionsListCell
if let objModel : questionItem = questions[indexPath.row] as? questionItem
{
print(objModel.title)
}
}
使用以下代码行,它将适合您。
$this->loadprofile()
答案 1 :(得分:2)
如果你想更改网址使用重定向(base_url()。&#39; home / loadprofile&#39;);在你的控制器addnewagency();正如其他人所建议的那样,请参考这个问题来了解您是否可以在重定向功能中发送数据, Sending data along with a redirect in CodeIgniter
答案 2 :(得分:1)
我找到了另一种选择来完成此任务。
您无法使用$this->load->view
函数来更改URL字符串,但是可以使用重定向方法来重定向到目标控制器函数。在调用重定向之前,请使用$this->session->set_flashdata
设置Flash会话数据,该数据仅可用于下一个请求,然后将自动清除。您可以从official codeiginter documentation阅读它。
示例:
class Login extends CI_Controller {
public function index()
{
if ($this->session->login_temp_data) {
$data = $this->session->login_temp_data;
} else {
$data = array();
$data['name'] = 'Guest' ;
}
$this->load->view('login', $data);
}
public function get_name()
{
$data = [];
$data['name'] = 'John Doe';
$this->session->set_flashdata('login_temp_data', $data);
redirect("login");
}
}
答案 3 :(得分:0)
您想使用redirect()
功能
在addnewagency()
方法的底部,如下所示:
public function addnewagency() {
$newagency = $this->input->post('newagency');
$this->dis_model->newagency_model(strtoupper($newagency));
redirect(base_url() . 'home/loadprofile');
}