【问题标题】:Insert data into DB by codeigniter通过codeigniter将数据插入数据库
【发布时间】:2017-06-21 13:16:36
【问题描述】:

我正在尝试将数据插入数据库,但它不起作用。它只是捕获我通过表单输入的数据并显示在 URL 栏上。

在我看来input_data.php它位于以下位置:C:\wamp\www\CodeIgniter\application\views\form\input_data.php。 p>

<form>
    <?php echo validation_errors(); ?>

        <?php echo form_open('form'); ?>
        <fieldset>          
            <div class="form-group">
                <div class="row colbox">
                    <div class="col-lg-3 col-sm-3">
                        <label for="lettername" class="control-label pull-right">ឈ្មោះលិខិត/ខ្លឹមសារ</label>
                    </div>
                    <div class="col-lg-9 col-sm-9">
                        <input id="letter_name" size="50" name="letter_name" placeholder="ខ្លឹមសារលិខិត" type="text" class="form-control"  value="<?php echo set_value('letter_name'); ?>" />
                        <span class="text-danger"><?php echo form_error('letter_name'); ?></span>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <div class="row colbox">
                    <div class="col-lg-3 col-sm-3">
                        <label for="letternumber" class="control-label pull-right">លេខលិខិត</label>
                    </div>
                    <div class="col-lg-9 col-sm-9">
                        <input id="letter_number" size="50" name="letter_number" placeholder="លេខលិខិត" type="text" class="form-control"  value="<?php echo set_value('letter_number'); ?>" />
                        <span class="text-danger"><?php echo form_error('letter_name'); ?></span>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <div class="col-sm-offset-3 col-lg-9 col-sm-9 text-left">
                    <input id="btn_add" name="btn_add" type="submit" class="btn btn-primary" value="បញ្ចូល" />
                    <input id="btn_cancel" name="btn_cancel" type="reset" class="btn btn-danger" value="លុបចេញ" />
                </div>
            </div>
        </fieldset>
    </form>'

下面是我的模型 login.php 位于 application\model\login.php 并且数据库中的表是 come_list。 p>

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

Class Login extends CI_Model {

    function add_letter($data){

    $this->db->insert('come_list', $data); 
    echo "user Added";
    }
}
?>

下面是控制器Main.php

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

    class Main extends CI_Controller {
      public function index()
      {
      $this->load->view('form/input_data');
      }   

      public function insert_come(){
      $this->load->library('form_validation');

      $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

      //Validating Name Field
      $this->form_validation->set_rules('letter_name', 'ខ្លឹមសារលិខិត',  'required|min_length[5]|max_length[15]');

      $this->form_validation->set_rules('letter_number', 'លេខលិខិត', 'required|min_length[10]|max_length[50]');

      if ($this->form_validation->run() == FALSE)
      {
           $this->load->view('form/input_data');
      }
      else
      {
           //Setting values for tabel columns
           $data = array(
                    'Name' => $this->input->post('letter_name'),

                    'Letter_Number' => $this->input->post('letter_number')
                );
                $this->load->model('login');
                     //Transfering data to Model
                $this->login->add_letter($data);
                //Loading View
                     $this->load->view('form/input_data');
               }
 }  
}
?>

【问题讨论】:

  • 我已尝试遵循此操作,但仍然无法正常工作。但是如果我从这边下载文件,它可以正常工作。我试图找出它们之间的不同之处。在我改变了我发现它仍然不起作用。
  • 我正在向您展示简单的代码,请稍候。
  • 现在可以使用了,感谢您的帮助。

标签: php html mysql twitter-bootstrap codeigniter


【解决方案1】:

我认为问题在于您的形式行为。使用此表格

<form role="form" method="post" action="<?php echo base_url();?>main/insert_come">

表格结束后使用

</form>

【讨论】:

  • 按照您的指示,当我输入数据并单击按钮提交时,它显示“404 Page Not Found” 您请求的页面未找到。我应该继续做什么?
【解决方案2】:

模型中也有发布数据,不需要从控制器发送它

      $this->Name    = $_POST('letter_name');
      $this->Letter_Number  = $_POST('letter_number')

      $this->db->insert('come_list', $this);

【讨论】:

  • 控制器是接收 HTTP 请求、与模型通信以获取数据、将其发送到视图以生成 HTML 代码并将结果返回到 Web 浏览器的控制器。
  • 是的,我同意了。相反,可以使用 $_POST
  • 而不是 $_POST 你应该使用代码点火方式 $this->input->post
【解决方案3】:
猜你喜欢
  • 1970-01-01
  • 2014-05-04
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 2016-09-18
  • 2017-10-24
相关资源
最近更新 更多