doupijin0397 2018-08-13 08:48
浏览 25
已采纳

如何将多个数据传递给codeigniter控制器

I am working on a template, i need to pass database results into jquery datatables in view page. now the problem is there is also a template named located at application/view/admin/layout.php that we use globally it includes head, footers, sidebars, and other global library. now the issue is i am not able to pass this template to controller.

Belwo is the my controller (application/controllers/admin/Applications.php

       <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Applications extends MY_Controller {
        public function __construct(){
            parent::__construct();

        }

        public function appindex(){
            $data['view'] = 'admin/dashboard/index';
            $this->load->model('admin/App_model');
            $result['data']=$this->App_model->applists();
            $this->load->view('admin/layout', $data, $result);

        }               
            }

?>  

Below is the my model ( application/models/admin/App_model.php

    <?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class App_model extends CI_Model{

    public function applists(){

            $query=$this->db->query("select * from tblapps");
            return $query->result();

        }       
}
?>

this is the code for my global file (layout.php) view

            <section id="container">
            <!--header start-->
            <header class="header white-bg">
                <?php include('include/navbar.php'); ?>
            </header>
            <!--header end-->
            <!--sidebar start-->
            <aside>
                <?php include('include/sidebar.php'); ?>
            </aside>
            <!--sidebar end-->
            <!--main content start-->
            <section id="main-content">
                <div class="content-wrapper" style="min-height: 394px; padding:15px;">
                    <!-- page start-->
                    <?php $this->load->view($view);?>
                    <!-- page end-->
                </div>
            </section>
            <!--main content end-->
            <!--footer start-->
            <footer class="main-footer">
                <strong>Copyright © 2018 <a href="#">Indian I Services</a></strong> All rights
                reserved.
            </footer>
            <!--footer end-->
        </section>

this is my index.php in view page where i am passing database query results.

 <tbody>
            <?php
                 $i=1;              
                foreach($data as $row)
            {
               echo "<tr>";
               echo "<td>".$i."</td>";
               echo "<td>".$row->app_id."</td>";
               echo "<td>".$row->firstname."</td>";
               echo "<td>".$row->email."</td>";
                echo "<td>".$row->sdate."</td>";
               echo "</tr>";
               $i++;
             }
            ?>              
            </tbody>

its giving me error,

A PHP Error was encountered Severity: Notice Message: Undefined variable: data Filename: applications/index.php Line Number: 42

if i use this code in controller - it shows just table. but how to include that template file so it can show all header, footer, and menus.

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Applications extends MY_Controller {
        public function __construct(){
            parent::__construct();

        }

        public function appindex(){
            $this->load->model('admin/App_model');
            $result['data']=$this->App_model->applists();
            $this->load->view('admin/applications/index', $result);

        }               
            }

?>
  • 写回答

2条回答 默认 最新

  • doushichun9409 2018-08-13 09:15
    关注

    Hope this will help you :

    Pass both view and data results like this :

    public function appindex()
    {
        $result['view'] = 'admin/dashboard/index';
        $this->load->model('admin/App_model');
        $result['data'] = $this->App_model->applists();
        $this->load->view('admin/layout', $result);
    }
    

    Your view should be like this :

    <section id="main-content">
                <div class="content-wrapper" style="min-height: 394px; padding:15px;">
                    <!-- page start-->
                    <?php if ( !empty($view))
                    {
                       $this->load->view($view);
                    }?>
                    <!-- page end-->
                </div>
    </section>
    

    This is your data part

    <tbody>
      <?php
      if (! empty($data))
      {
        $i=1;              
        foreach($data as $row)
        {
          echo "<tr>";
          echo "<td>".$i."</td>";
          echo "<td>".$row->app_id."</td>";
          echo "<td>".$row->firstname."</td>";
          echo "<td>".$row->email."</td>";
          echo "<td>".$row->sdate."</td>";
          echo "</tr>";
          $i++;
        }
      }
      ?>              
    </tbody>
    

    For more : https://codeigniter.com/user_guide/general/views.html#adding-dynamic-data-to-the-view

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误