2013-08-04 3 views
0

Я создал форму в Codeigniter, но не должен отправлять значения в базу данных. Я попытался отладить мой код, повторив «привет» в моем методе, который работает, но фактический метод ничего не передает в базу данных.Форма не отправляется в базу данных с использованием Codeigniter_2.1.4 framework

Это код в моей странице просмотра

<div data-role="content"> 
      <?php echo form_open('index.php/welcome/adduser'); ?> 
      <div data-role="fieldcontain"> 
      <?php echo validation_errors('<p class="error">','</p>'); ?> 
      <p> 
      <label>Firstname: </label> 
      <?php echo form_input('firstname', set_value('firstname')); ?> 

      </p> 
      <p> 
      <label>Lastname: </label> 
      <?php echo form_input('lastname', set_value('lastname')); ?> 

     </p> 
     <p> 
      <label>Email: </label> 
      <?php echo form_input('email', set_value('email')); ?> 

     </p> 
     <p> 
      <label>Age: </label> 
      <?php echo form_input('age', set_value('age')); ?> 

     </p> 
     <p> 
      <label>username: </label> 
      <?php echo form_input('username', set_value('username')); ?> 

     </p> 
     <p> 
      <label>Password: </label> 
      <?php echo form_input('password', set_value('password')); ?> 

     </p> 

     <p> 
      <?php echo form_submit('submit', 'Submit'); ?> 
     </p> 

    </div> 

Это мой контроллер

<?php 

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

class Welcome extends CI_Controller { 

    /** loading services* */ 
    function __construct() { 
     parent::__construct(); 

     $this->load->database(); 
     $this->load->helper('form'); 
     $this->load->helper('url'); 
     $this->load->library('form_validation'); 
    } 

    /** loading several pages * */ 
    public function index() { 
     $this->load->view('abt-header'); 
     $this->load->view('abt-abovetheblues'); 
     $this->load->view('abt-footer'); 
    } 

    public function adduser() { 


     if ($this->_adduser_validate() === FALSE) { 
      $this->index(); 
      return; 
     } 
     $data = new user(); 
     $data->firstname = $this->input->post('firstname'); 
     $data->lastname = $this->input->post('lastname'); 
     $data->username = $this->input->post('username'); 
     $data->password = $this->input->post('password'); 
     $data->email = $this->input->post('email'); 
     $data->age = $this->input->post('age'); 


     $this->load->view('#abt-profile'); 
    } 

    private function _adduser_validate() { 

     // validation rules 
     $this->form_validation->set_rules('firstname', 'Firstname', 'required'); 
     $this->form_validation->set_rules('lastname', 'Lastname', 'required'); 
     $this->form_validation->set_rules('username', 'Username', 'required|alpha_numeric|min_length[6]|max_length[12]'); 

     $this->form_validation->set_rules('password', 'Password', 'required|min_length[6]|max_length[12]'); 

//  $this->form_validation->set_rules('passconf', 'Confirm Password', 'required|matches[password]'); 

     $this->form_validation->set_rules('email', 'E-mail', 'required|valid_email'); 
     $this->form_validation->set_rules('age', 'Age', 'required'); 

     return $this->form_validation->run(); 
    } 



} 

?> 
+3

'$ daa',' $ u', где они определены? Где находится метод 'save()'? Я их нигде не вижу. – Ohgodwhy

+0

Вы не создаете модель где-нибудь? Я предполагаю, что вы ожидаете, что '$ u' будет' User_model', а '$ daa' - это typeo? Итак, создайте модель '$ this-> load-> ('User_model', 'u');' в вашем конструкторе. – RiggsFolly

+0

Это была ошибка типографии! Я вставил правильный код .. cheers – Omade

ответ

0

Вы не указываете, какие данные должны быть сохранены в каком таблице. использовать что-то вроде этого ...

/* 
$data = array(
    'tableCol1' => $this->input->post('postedItem1'), 
    'tableCol2' => $this->input->post('postedItem2'), 
    ); 
*/ 
$this->db->set($data); 
$this->db->insert($tableName); 
+0

, это должен быть ответ, когда вопрос не ясен? –

+0

Спасибо !, вы имеете в виду, что я должен вставить имя таблицы, подобное этому ... – Omade

+0

$ this-> db-> insert ('user') // имя моей таблицы - пользователь – Omade

0

Прежде всего, вы не закрыли вашу форму, добавьте это к вашему мнению:

<?php echo form_close();?> 

Я не вижу, где вы запустите запрос вставки который будет вставлять данные в базу данных. Ваша функция AddUser может быть, как это:

public function adduser() { 


    if ($this->_adduser_validate() === FALSE) { 
     $this->index(); 
     return; 
    } 
    $data = array(
    'firstname' = $this->input->post('firstname'), 
    'lastname' = $this->input->post('lastname'), 
    'username' = $this->input->post('username'), 
    'password' = $this->input->post('password'), 
    'email' = $this->input->post('email'), 
    'age' = $this->input->post('age'), 
    ); 

    $this->db->insert('user',$data); 
    $this->load->view('#abt-profile'); 
} 

Я предполагаю, что вы установили имя базы данных и учетные данные для входа в конфиге/database.php файлу Это будет наверняка помочь вам. Если есть какие-либо проблемы, дайте мне знать.

+0

Спасибо! Я его отсортировал и, как вы спросили, где моя вставка? Я фактически не передавал свои переменные $ data в мою вставку в модели. – Omade

+0

@Omade Счастливые, чтобы помочь. Отметьте это как ответ, если это помогло :) – Aman

Смежные вопросы