Codeigniter 如何将数据从表单保存到数据库

Posted

技术标签:

【中文标题】Codeigniter 如何将数据从表单保存到数据库【英文标题】:Codeigniter How to save data from a form to a database 【发布时间】:2013-03-21 05:11:06 【问题描述】:

代码点火器

嗨。我想将表单数据发送到数据库。数据检查正常,接下来怎么办?

我的控件

 <?php

class Form extends CI_Controller 

    function index()
    
        $this->load->helper(array('form', 'url'));

        $this->load->library('form_validation');

            $this->form_validation->set_rules('name', 'Imie', 'required|min_length[5]|max_length[25]|required|alpha'); 
            $this->form_validation->set_rules('surname', 'Nazwisko', 'required|min_length[5]|max_length[25]|required|alpha'); 
            $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); 
            $this->form_validation->set_rules('number', 'Numer telefonu', 'required|alpha_numeric|max_length[10]'); 
            $this->form_validation->set_rules('brand', 'Marka', 'required|alpha'); 
            $this->form_validation->set_rules('model', 'Model', 'required|alpha'); 
            $this->form_validation->set_rules('year', 'Rok produkcji', 'required|alpha_numeric|max_length[5]'); 
            $this->form_validation->set_rules('km', 'Ilosc KM', 'required|alpha_numeric|max_length[5]'); 
            $this->form_validation->set_rules('licenceseplate', 'Tablica rejestracyjna', 'required|max_length[15]'); 
            $this->form_validation->set_rules('description', 'Opis', 'required|max_length[300]'); 
            $this->form_validation->set_rules('city', 'Miasto', 'required|max_length[30]'); 

        if ($this->form_validation->run() == FALSE)
        
            $this->load->view('myform');

        
        else
        
            $this->load->view('formsuccess');
        

    



?>

我的看法

    <html>
<head>
<title>My Form</title>
</head>
<body>


<?php echo form_open('form'); ?>

<h5>Wpisz swoje imię</h5>
<?php echo form_error('name'); ?>
<input type="text" name="name" value="<?php echo set_value('name'); ?>" size="50" />

<h5>Nazwisko</h5>
<?php echo form_error('surname'); ?>
<input type="text" name="surname" value="<?php echo set_value('surname'); ?>" size="50" />

<h5>Email Address</h5>
<?php echo form_error('email'); ?>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />

<h5>Numer telefonu</h5>
<?php echo form_error('number'); ?>
<input type="text" name="number" value="<?php echo set_value('number'); ?>" size="50" />

<h5>Marka</h5>
<?php echo form_error('brand'); ?>
<input type="text" name="brand" value="<?php echo set_value('brand'); ?>" size="50" />

<h5>Model</h5>
<?php echo form_error('model'); ?>
<input type="text" name="model" value="<?php echo set_value('model'); ?>" size="50" />

<h5>Rok produkcji</h5>
<?php echo form_error('year'); ?>
<input type="text" name="year" value="<?php echo set_value('year'); ?>" size="50" />


<h5>km</h5>
<?php echo form_error('km'); ?>
<input type="text" name="km" value="<?php echo set_value('km'); ?>" size="50" />



<h5>Rejestracja </h5>
<?php echo form_error('licenceseplate'); ?>
<input type="text" name="licenceseplate" value="<?php echo set_value('licenceseplate'); ?>" size="50" />

<h5>Opis </h5>
<?php echo form_error('description'); ?>
<input type="text" name="description" value="<?php echo set_value('description'); ?>" size="50" />

<h5>Miasto </h5>
<?php echo form_error('city'); ?>
<input type="text" name="city" value="<?php echo set_value('city'); ?>" size="50" />



<div><input type="submit" value="Submit" /></div>

</form>

</body>
</html>

我不期待最终的解决方案,但我需要帮助,下一步是什么

我的数据库:

【问题讨论】:

【参考方案1】:

好的 我的观点是这样的:

    <?php

class Form extends CI_Controller 

    function index()
    
        $this->load->helper(array('form', 'url'));

        $this->load->library('form_validation');

            $this->form_validation->set_rules('name', 'Imie', 'required|min_length[5]|max_length[25]|required|alpha'); 
            $this->form_validation->set_rules('surname', 'Nazwisko', 'required|min_length[5]|max_length[25]|required|alpha'); 
            $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); 
            $this->form_validation->set_rules('number', 'Numer telefonu', 'required|alpha_numeric|max_length[10]'); 
            $this->form_validation->set_rules('brand', 'Marka', 'required|alpha'); 
            $this->form_validation->set_rules('model', 'Model', 'required|alpha'); 
            $this->form_validation->set_rules('year', 'Rok produkcji', 'required|alpha_numeric|max_length[5]'); 
            $this->form_validation->set_rules('km', 'Ilosc KM', 'required|alpha_numeric|max_length[5]'); 
            $this->form_validation->set_rules('licenceseplate', 'Tablica rejestracyjna', 'required|max_length[15]'); 
            $this->form_validation->set_rules('description', 'Opis', 'required|max_length[300]'); 
            $this->form_validation->set_rules('city', 'Miasto', 'required|max_length[30]'); 

        if ($this->form_validation->run() == FALSE)
        
            $this->load->view('myform');

        
        else
        
            /*$this->load->view('formsuccess');*/
            $this->load->model ( 'form' );
            $this->form->save($data);
        

    



?>

我的模特

    class form extends Model

  function form()
    parent::Model();
    $this->load->helper('url');             
  

public function save($data) 
   $this->db->set($data);
   $this->db->insert(form);
   $this->db->insert_id();

 




日期基名称形式的表格

我不知道你想要什么

【讨论】:

【参考方案2】:

表单验证后可以保存数据

在你的控制器中

    if ($this->form_validation->run() == FALSE)
        $this->load->view('myform');
    
    else 
     $this->your_model->save($data);           
    

your_model.php

 public function save($data) 
   $this->db->set($data);
   $this->db->insert(table name here);
   $this->db->insert_id();
 

【讨论】:

您可以在 CI 的出色用户指南中找到与数据库类相关的所有信息。这是非常容易使用。请原谅我的英语:)【参考方案3】:

您必须将数据发送到模型

您可以使用活动记录或普通查询来保存数据

必须注意,你需要在控制器中包含模型

$this-&gt;load-&gt;model ( 'Your model name' ); 这应该包含在控制器中

$this-&gt;yourmodelname-&gt;functioninmodel这是对模型的控制器函数调用

【讨论】:

请举例说明它的外观。 Kombinował 已经有模型,但我无法获得效果

以上是关于Codeigniter 如何将数据从表单保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter 和 AJAX 表单提交

如何使用PHP在数据库中保存HTML META和JavaScript?

Codeigniter PHP 在数据库中保存数据

如何使用 JQuery 将 HTML 表单字段作为数组直接传递到 CodeIgniter 中的数据库

如何使用 Xamarin 表单和 C# 将 Html 数据从网站保存到文本文件

将表单文件附加到电子邮件,Codeigniter