2017-06-08 28 views
0

我有一個數據庫表中有11個實體的MySQL。當用戶首次搜索一個項目時,我的代碼顯示5個實體,然後有一個鏈接供用戶點擊以查看該項目的更多信息。當用戶點擊鏈接時,應該引導他們進入一個新頁面,其中包含有關基於itemID點擊的項目的信息。我不知道如何將實體的itemID傳遞給控制器​​。請幫忙! 這裏是我的代碼: 位指示:顯示關於一個項目的更多信息php codeigniter

<?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> 

回答

0

喲需要改變升IKE此 控制器

<?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 
     } 
    } 

模型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(); 
     } 
    } 

視圖信息搜索結果

<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> 
相關問題