【问题标题】:codeigniter redirct function errorcodeigniter重定向功能错误
【发布时间】:2016-09-16 04:48:34
【问题描述】:

我正在开发 codeigniter。我执行了 sql 查询以将数据插入数据库。我的查询运行良好,并显示在数据库表中。

但是如果我的数据被插入到表中(比如数据插入成功),我想显示消息。

这是我的控制器代码:

public function insert(){

        $post=$this->input->post();
        unset($post['submit']);
       if($this->testimonial_model->insert_testimonial($post))
       {
           $this->session->set_flashdata('feedback',"Data inserted successfully.");
           $this->session->set_flashdata('feedback_class','alert-success');
       }else{
           $this->session->set_flashdata('feedback',"failed to add, Please Try again");
           $this->session->set_flashdata('feedback_class','alert-danger');
       }
       return redirect('testimonial_edit');

    }

这是我的型号代码:

public function insert_testimonial($insert){
        return $this->db->insert('testimonial',$insert);
    }

这是我的视图代码,我的视图文件名为 testimonial_edit

<?php 
         if($feedback=$this->session->flashdata('feedback')):
             $feedback_class=$this->session->flashdata('feedback_class');
         ?>
         <div class="row">
             <div class="col-lg-6">
                 <div class="alert alert-dismissable <?php $feedback_class?>">
                 <?php $feedback?>
                 </div>
             </div>
         </div>
         <?php
         endif;
         ?>

在此代码下方是我的表单代码。

填写表单后点击提交按钮,数据成功插入,但显示以下错误

404 页面未找到
未找到您请求的页面。

这个错误页面的url是

http://localhost/lalcoresidency/testimonials/dashbord

请帮我找出解决办法

【问题讨论】:

  • 检查dashborddashboard ?
  • 这基本上是一个路由问题,请检查您的路由并匹配错误网址是否存在。
  • nana 重定向但不显示消息
  • 检查控制器文件名的首字母只有大写,与类相同。而且你不需要使用return和redirect。
  • @Arsh flashdata with codeigniter 仅在使用重定向时有效。

标签: php html codeigniter


【解决方案1】:

在配置文件helper数组中添加url助手

点赞$config['helper']=array("url");

【讨论】:

    【解决方案2】:

    您无法重定向到视图文件,因此请尝试向控制器添加一个仅加载视图的方法;然后重定向到该方法:

    public function insert(){
    
        $post=$this->input->post();
        unset($post['submit']);
        if($this->testimonial_model->insert_testimonial($post))
        {
           $this->session->set_flashdata('feedback',"Data inserted successfully.");
           $this->session->set_flashdata('feedback_class','alert-success');
       }else{
           $this->session->set_flashdata('feedback',"failed to add, Please Try again");
           $this->session->set_flashdata('feedback_class','alert-danger');
       }
       redirect('current_controller_name/testimonial_edit');
    
    }
    /* add this function that you can redirect to, 
    and which will load the view file of the same name */
    function testimonial_edit(){
        $this->load->view('testimonial_edit');
    }
    

    至于你的成功信息不显示,试试:

    <?php if($this->session->flashdata('feedback')){ ?>
    <div class="row">
        <div class="col-lg-6">
            <div class="alert alert-dismissable <?php echo $this->session->flashdata('feedback_class'); ?>">
            <?php echo $this->session->flashdata('feedback'); ?>
            </div>
        </div>
    </div>
    
    <?php } ?>
    

    【讨论】:

    • 是的 mudshark ..通过这样做它可以完美地工作但是 ..successfull 的消息没有显示
    • 这完全是个问题。
    • 不客气@nushrat!请将我的回答标记为已解决您的问题:-)
    • 嗨@nushrat,正如你所写的“..Thanx alot mudshark”。所以,请纠正这个答案。因为它将帮助其他用户轻松找到此答案。
    • 谢谢。但是,这就是您赞成的答案。 未选择答案。要选择合适的答案,请查看此处meta.stackexchange.com/questions/5234/…@nushrat 并且,请回答您提出的所有 12 个问题。
    【解决方案3】:

    试试看:-

      public function insert(){
              $this->load->library('session');
                $post=$this->input->post();
                unset($post['submit']);
               if($this->testimonial_model->insert_testimonial($post))
               {
                   $this->session->set_flashdata('feedback',"Data inserted successfully.");
                   $this->session->set_flashdata('feedback_class','alert-success');
               }else{
                   $this->session->set_flashdata('feedback',"failed to add, Please Try again");
                   $this->session->set_flashdata('feedback_class','alert-danger');
               }
    
     echo ($this->session->flashdata('feedback_class')) ? $this->session->flashdata('feedback_class') : '';
    
     echo ($this->session->flashdata('feedback')) ? $this->session->flashdata('feedback') : '';
    
    die;
    
                redirect(base_url('testimonial_edit'));
    
            }
    

    【讨论】:

    • 再次检查我更新的代码。首先我们要确定,flashdata 值得到与否
    • 现在显示为空白,网址为..localhost/lalcoresidency/testimonials/insert
    • @AnshuPratapYadav 删除die;
    • 先搞清楚什么真正的问题,Redirection 还是 session msg?
    • @AnshuPratapYadav ,现在是消息问题,如果条件不正确,请检查它的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2020-03-01
    • 2013-05-05
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    相关资源
    最近更新 更多