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

相关问题