1

更新:解決しました..

何らかの理由で、データがテーブルに挿入されていません。ただし、var dump で確認できるように、フォームから投稿されていますが、それ以上のことはできません。それで、ここに3つのモジュールがあります。これは非常に単純なテスト スキームです。2 つのフィールドを持つフォームで、[送信] を押すと挿入されます。(通常の PHP では 1 ページですべてを実行できますが、MVC フレームワークはこの点で悪夢です。手続き型で必要なコードの約 30 倍のコードを記述します。

<?php

class Inserting_controller extends CI_Controller {

     public function __construct()
       {
            parent::__construct();
            $this->load->model('Inserting_model');

       }


     public function index ()
     {

        $this->load->view('inserting_view'); 
     }

    // Controller
     public function insert()
     {
     $data = array(
        'username' => $this->input->post('username', TRUE),
        'password' => sha1($this->input->post('password', TRUE)
     ));


     var_dump($data); // We do get the data posted
      exit;

     $this->Inserting_model->insertdata($data); // this should forward them to the Model
}
}
?>

==============
MODEL

    <?php


    class Inserting_model extends CI_Model{


        function __construct()
        {
            // Call the Model constructor
            parent::__construct();
            $this->load->database();
        }


            public function insertdata($data)
                {
                 $this->db->insert('users', $data);
                } 


    }

    ?>

========
VIEW



    <div id="inserting_form">

            <?php echo form_open('index.php/Inserting_controller/insert/'); ?> 

          <ul>

                <li>



                <label>Username</label>      

                <div><?php echo form_input(array('id' => 'username', 'name' => 'username')); ?></div>

               </li>
               <li>
                <label>Password</label>      

                <div><?php echo form_password(array('id' => 'password', 'name' => 'password')); ?></div>   
                </li>   

                <li><?php echo validation_errors();?></li>

                <li><?php echo form_submit(array('name' =>'submit'),'Insert');?> </li>

          </ul>

          <?php echo form_close(); ?>

            </div>
4

1 に答える 1

0

赤面:/

デバッグ コードを書いているときに、出口を削除するのを忘れていました。したがって、プログラムはその直後に終了しました....

于 2012-07-07T06:41:29.017 に答える