显示有关项目php codeigniter的更多信息

时间:2017-06-08 13:01:12

标签: php mysql codeigniter

我在mysql中有一个包含11个实体的数据库表。当用户首次搜索项目时,我的代码显示5个实体,然后有一个链接供用户单击以查看有关该项目的更多信息。当用户单击该链接时,它应该引导他们到新页面,其中包含有关基于itemID单击的项目的信息。我不知道如何将实体的itemID传递给控制器​​。请帮忙! 这是我的代码: 位指示:

 <?php defined('BASEPATH') OR exit('No direct script access allowed');
class ItemView extends CI_Controller {
public function __construct(){
    parent::__construct();
    $this->load->helper('url');
    $this->load->helper('form');
    $this->load->model('itemModal');
}
public function index(){
    $this->load->view('base');
    $this->load->view('searchResult');
}
public function viewItems(){
    //trying to get the id of the clicked item
    $id = $this->input->post($rows['inventoryID']);
    $data['results'] = $this->itemModal->get_items($id);
    $this->load->view('base.php',$data);
    $this->load->view('itemview.php',$data);
}
}
?>

型号:

<?php 
class ItemModal extends CI_Model {
function __construct(){
    parent::__construct();
}
function get_items($id){
    $this->db->select('*');
    $this->db->like('inventoryID',$id);

    // Execute the query.
    $query = $this->db->get('inventory');

    // Return the results.
    return $query->result_array();

}}?>

查看:

<body>
    <h1><center>Item List</center></h1>
    <hr>
     <div class="container">
         <form method="post" action="<?php echo site_url('itemView/index'); ?>">
                <table>
                    <tr>
                        <th><input type="radio" name="chk"></th>
                        <th>Inventory ID</th>
                        <th>Master Code</th>
                        <th>Item Name</th>
                        <th>Color Name</th>
                        <th>Location</th>
                        <th>Link to more information</th>
                    </tr>
                    <?php foreach($results as $rows):?>
                    <tr>
                        <td><input type="radio" name="chk"></td>
                        <td><?php echo $rows['inventoryID'] ?></td>
                        <td><?php echo $rows['masterCode'] ?></td>
                        <td><?php echo $rows['itemName'] ?></td>
                        <td><?php echo $rows['colorName'] ?></td>
                        <td><?php echo $rows['location'] ?></td>
                        <td><a href="<?php echo site_url('itemView/viewItems'); ?>">click to view more information</a></td>
                    </tr>
                    <?php endforeach; ?>
                </table>
         </form>
 </div></body>

查看itemView

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>css/search.css">
    <title>Item Information Page</title>
</head>
<body>
    <h1><center>Item Information</center></h1>
    <hr>
    <div class="container">

    </div>
    <!-- End of Container -->
</body><br><br>
</html>

1 个答案:

答案 0 :(得分:0)

你需要改变这样 控制器

<?php defined('BASEPATH') OR exit('No direct script access allowed');
    class ItemView extends CI_Controller {
        public function __construct(){
            parent::__construct();
            $this->load->helper(array('url','form'));
            $this->load->model('itemModal', 'model_items');
        }

        public function index(){
            //get all items from db to display basic info in form
            $data['items']=$this->model_items->get_all();
            $this->load->view('base');
            $this->load->view('searchResult', $data);
        }

        //get the specific item to be updated
        public function updateItem( $id ){
            $data['results'] = $this->model_items->get_item_by_id($id);
            $this->load->view('base',$data);
            //viw with inpus form to change the info and send to controller to be updated
            $this->load->view('itemview',$data);
        }

        //get all items to be updated
        public function updateItems(){
            foreach($this->input->post() as $item => $value){
                ${$item} = $value;
            }

            //here you need to add logic to make wherever you want with all items selected in form
        }
    }

model itemModal

<?php 
    class ItemModal extends CI_Model {
        function get_all(){
            return $this->db->get('inventory')->result();
        }

        function get_item_by_id($id){
            return $this->db->get_where('inventory', array('id' => $id))->row();
        }
    }

查看searchResult

<form method="post" action="<?= site_url('itemView/updateItems'); ?>">
            <table>
                <tr>
                    <!-- select one or more items to be updated bach -->
                    <th><input type="checkbox" name="chk" value="<?= $rows->inventoryID ?>"></th>
                    <th>Inventory ID</th>
                    <th>Master Code</th>
                    <th>Item Name</th>
                    <th>Color Name</th>
                    <th>Location</th>
                    <th>Link to more information</th>
                </tr>
                <?php foreach($itemsas $rows):?>
                <tr>
                    <td><input type="radio" name="chk"></td>
                    <td><?= $rows->inventoryID ?></td>
                    <td><?= $rows['masterCode'] ?></td>
                    <td><?= $rows['itemName'] ?></td>
                    <td><?= $rows['colorName'] ?></td>
                    <td><?= $rows['location'] ?></td>
                    <!-- update specific item -->
                    <td><a href="<?= site_url('itemView/updateItem/'.$rows->inventoryID ); ?>">click to view more information</a></td>
                </tr>
                <?php endforeach; ?>
                <tr>
                    <td>Update all items selected</td>
                    <td><input type="submit" value="Update"></td>
                </tr>
            </table>
     </form>