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をコントローラーに送信できますか?

4

1 に答える 1

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">
于 2013-04-24T16:32:45.590 に答える