2013-04-24 69 views
0

我有一個非常小的應用程序,它需要一個id,然後基於該id更新數據庫表。該ID是來自視圖的輸入。如何訪問控制器內視圖提交的數據?

基本上我的DB(型號)有getAllProjects()approveProject($id)

控制器:

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

class ApproveProject extends CI_Controller { 

    public function index() { 
     $this->loadView(); 
    } 

    public function getData() { 
     $this->load->model("db_Projects"); 
     $this->db_Projects->getAllProjects(); 

    } 

    public function updateDB() { 
     // how can I get this variable? 
     $this->db_Projects->approveProject($toApprove); 
    } 

    public function loadView() { 
     $this->load->view("ViewProjectApproval"); 
    } 
} 

?> 

查看:

<html language="en"> 
<head> 
    <title>Aprobare Proiect</title> 
</head> 
    <h1> Aprobare Proiect </h1> 
<body> 
<div id="container"> 

    <?php 
     if (isset($_POST['projectSubmit']) && ($_POST['projectSubmit'] == "Submit")) 
     { 
      $toApprove= $_POST['projectId']; 
     } 
    ?> 


    <form action ="updateDB" method="post"> 
     <input type="text" name="projectId"> 
     <input type="submit" name="projectSubmit" value="Submit"> 
    </form> 


</div> 

</body> 

我不知道如果我的觀點是好的,或者如果它應該否則......我怎麼能發送ID到我的控制器?

回答

1

您在提交使用POST方法,這樣你可以從你的控制器的方法裏面POST變量的形式,像

$toApprove = $this->input->post('projectId'); 

所以你的方法/函數將看起來像這樣的事情

public function updateDB() { 
    if($this->input->post('projectId')) 
    { 
     $toApprove = $this->input->post('projectId'); 
     // load the model and call the method, like 
     $this->load->model('model_name'); 
     $model_name->method_name($toApprove); 
    } 
} 

更新: 您的表單的action看起來不錯,試試這個(controller_name/method_name)

<form action ="<?php echo site_url('ApproveProject/updateDB') ?>" method="post"> 
+0

我試過了,沒有工作。所以我評論'updateDB'並留下了一個'echo「Test」;'但是沒有出現。任何想法,我應該張貼更新後的代碼以防萬一? – Kalec 2013-04-24 16:41:29

+0

發現問題:它從來沒有進入if子句 – Kalec 2013-04-24 16:53:17

+1

我認爲要記住Code Igniter銷燬超全局圖,因此在沒有一些額外配置的情況下在控制器中訪問它們不起作用。但他們可能已經改變了與CI 2. – Gordon 2013-04-24 17:01:15

相關問題