dongzhang7961 2011-06-11 00:45 采纳率: 0%
浏览 55
已采纳

CodeIgniter:从视图传递参数到控制器?

EDIT: With the code below now, I am unsure on how to print out the bookmarks and the tags correctly


I’m completely new to CI and I have recently hit a road block. I’m very unsure how I would go about passing a function argument from the view file to the controller so I could use it on a function?

I have a foreach loop on the view going through the all the items passed by function get_latest_bookmarks. That function returns a ID for each item and I am wanting to use this with another function called get_bookmark_tags which will get the tags of the bookmark from another table. I have provided the code I have done so far below.

Model:

<?php 

class Bookmark_model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function get_latest_bookmarks($limit) 
    {
        // Load Database
        $this->load->database();
        // Query Database 
        $query = $this->db->get('Bookmark', $limit);
        // Return Result
        return $query;
    }

    function get_bookmark_tags($id)
    {
        // Load Database
        $this->load->database();
        $query = $this->db->query('SELECT Tag.Title 
                                    FROM `Tag` 
                                    INNER JOIN BookmarkTag
                                    WHERE BookmarkTag.BookmarkID = "'.$id.'" AND Tag.TagID = BookmarkTag.TagID');
        return $query;
    }

Controller:

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

class Welcome extends CI_Controller {

    public function index()
    {
        // Load URL Helper
        $this->load->helper('url');
        // Load User Library
        $this->load->library('ion_auth');
        // Is User Logged In
        if ($this->ion_auth->logged_in())
        {
            $data['user'] = $this->ion_auth->get_user_array();
        }
        else
        {
            redirect('auth/login');
        }
        // Load Bookmark Model
        $this->load->model('Bookmark_model');

        // Create Arrays
        $bookmarks = array();
        $tags = array();

        // Query Database
        $query = $this->Bookmark_model->get_latest_bookmarks(4);
        // 
        foreach ($query->result() as $row) {
             array_push($tags, $this->Bookmark_model->get_bookmark_tags($row->BookmarkID));
             array_push($bookmarks, $row);
        }
        $data['tags_latest'] = $tags;
        $data['bookmarks_latest'] = $bookmarks;
        $this->load->view('welcome_message', $data);
    }

}

View:

<h1>Latest Bookmarks</h1>

<?php foreach ($bookmarks_latest as $bookmark): ?>

<?php print_r($bookmark); ?>

<?php print_r($tags_latest->result()); ?>

<?php endforeach; ?>
  • 写回答

2条回答 默认 最新

  • dtvjl64442 2011-06-11 00:53
    关注

    You should do that in your Controller before you are passing the data to the View. Try with something like this:

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
    class Welcome extends CI_Controller {
    
        public function index()
        {
            // Load Model
            $this->load->model('Bookmarks');
            // Get Latest Bookmarks
            $query = $this->Bookmarks->get_latest_bookmarks(4);
            $bookmarks = array();
            $tags = array();
            foreach ($query->result() as $row) {
                 $bookmark_query = $this->Bookmarks->get_bookmark_tags($row->id);
                 $bookmark_arr = array();
                 foreach (bookmark_query->result() as $bookm) {
                     array_push($bookmark_arr, $bookm);
                 }
                 array_push($tags, $bookmark_arr);
                 array_push($bookmarks, $row);
            }
            $data['tags'] = $tags;
            $data['bookmarks'] = $bookmarks;
            // Load and Pass Data into View
            $this->load->view('welcome_message', $data);
        }
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信夜间被转走了1w对,当天手机剪切板里就出现了这个乱码,有铁子可以看看是啥吗可以
  • ¥50 跑通github上的代码 深度学习 pytorch
  • ¥50 求写,批处理调用分区助手分区脚本
  • ¥15 求购HI3519AV100开发板
  • ¥15 请问1553 RT怎么测试,没有BC有方法吗
  • ¥100 业务编程如何选择学习方向和内容?
  • ¥15 wamp3.3.5安装完成后图标正常显示绿色,鼠标左右键点击图标均无反应。求解决方法。
  • ¥15 鼠标点击的这条记录了什么?
  • ¥15 在写pid调速的程序时,电机始终维持最大速度
  • ¥15 【有偿】调用DXGI截图初始化失败,提示0xf 887a0004