如何在完成更新后传递TRUE / FALSE并重定向到Index()并设置
条件$ viewdata ['show']附加我的html成功或其他东西
我的控制器
class Description extends CI_Controller {
public function index()
{
$viewdata['content']=$this->General_model->get_page_uri();
$viewdata['show']=; //where i want to get value when update() method
//pass value so i can show sucess / error message
$this->load->view("backend/content_view",$viewdata);
}
public function update()
{
$title=$this->input->post('txttitle');
if($title != '')
{
if(!$this->update_model->update_all($title))
{
return FALSE;
}
return TRUE;
}
redirect('Admin/Description');
}
}
我的模特
public function update_all($data)
{
$this->db->set('desc',$data)
->where('desc_id','1');
if(!$this->db->update('tbl_desc'))
{
return FALSE;
}
return TRUE;
}
@Ritesh d joshi thz它的工作,但我面临的问题,我无法修改更新错误我测试将我的字段名称更改为其他测试返回false;
管理员/说明/更新
它显示Codeigniter发现'数据库错误'
我不希望这显示我想保持我的管理页面仍然相同只是警报nomol消息错误,我已设置不显示许多信息错误。我怎么能阻止这个,或者只能通过Ajax请求来完成?
控制器索引()
if($show_ses === '0')
{
$viewdata_result = $this->General_model->rk_alert_ok('Successfully Update');
$this->session->set_flashdata('show', 'false');
}elseif($show_ses === '1'){
$viewdata_result=$this->General_model->rk_alert_no('Fail Update Request');
$this->session->set_flashdata('show', '');
}
Controller update()
if(!$this->update_model->update_all($title))
{
$this->session->set_flashdata('show', '1');
//1= false
}else{
$this->session->set_flashdata('show', '0');
//0=true
}
答案 0 :(得分:2)
使用PHP header()
函数。
header('Location: your_URL');
<强>更新强>
在CI中,您可以使用redirect()
功能,本文档将帮助您理解:http://www.codeigniter.com/user_guide/helpers/url_helper.html
答案 1 :(得分:1)
请试试这个
class Description extends CI_Controller {
public function index()
{
$viewdata['content']=$this->General_model->get_page_uri();
$show= $this->session->flashdata('show');
if($show){
// Here is code for show and message
$viewdata['show']="message";
$this->session->set_flashdata('show', 'false');
}
$this->load->view("backend/content_view",$viewdata);
}
public function update()
{
$title=$this->input->post('txttitle');
if($title != '')
{
if(!$this->update_model->update_all($title))
{
return FALSE;
}
$this->session->set_flashdata('show', 'true');
return TRUE;
}
redirect('Admin/Description');
}
}
答案 2 :(得分:1)
您可以在update()
中使用重定向:
public function update()
{
$title = $this->input->post('txttitle');
if($title != '')
{
$status = $this->update_model->update_all($title);
if($status){
redirect(base_url().'index?show=1');
}
else{
redirect(base_url().'index?show=0');
}
}
redirect('Admin/Description');
}
您可以将index()
中的状态检查为:
public function index()
{
$viewdata['content']=$this->General_model->get_page_uri();
if(isset($this->input->post('show')) && intval($this->input->post('show')) == 0){
$viewdata['show'] = 1; // if success than show 1
}
else{
$viewdata['show'] = 0; // if error than show 0
}
$this->load->view("backend/content_view",$viewdata);
}
答案 3 :(得分:1)
您可以使用标题功能,并检测它,您也可以在GET Url中传递参数,如下所示。
默认情况下,将状态设置为FALSE。您可以根据您的条件将状态更新为FALSE或TRUE。
public function update()
{
$status = false;
$title=$this->input->post('txttitle');
if($title != '')
{
if(!$this->update_model->update_all($title))
{
$status = FALSE;
return FALSE;
}
$this->session->set_flashdata('show', 'true');
$status = TRUE;
return TRUE;
}
header('Location: abc.php?status='.$status);
}
希望这会有效,如果有任何混淆,请告诉我。