2017-10-07 7 views
1

Je suis nouveau à codeigniter, j'ai tout essayé mais mon formulaire n'est toujours pas soumis à la base de données.CodeIgniter 3: le formulaire n'est pas soumis

Voici mon code. Je ne peux pas vraiment trouver où je me suis trompé plus.

VIEW

<?= form_open('forms/submit_shifter_form');?>    
<div id="form-interview-fill-mainform" class="form-group"> 
    <div class="container"> 
     <div class="col-sm-12"> 
      <div class="input-group"> 
       <label>Reason/s for shifting:</label> 
       <input type="text" class="form-control form-input" name="shifter_reason"> 
      </div> 

      <div class="col-sm-6"> 
       <div class="input-group"> 
        <label>Strengths:</label> 
        <input type="text" class="form-control form-input" name="shifter_strength"> 
       </div> 
      </div> 
      <div class="col-sm-6"> 
       <div class="input-group"> 
        <label>Weaknesses:</label> 
        <input type="text" class="form-control form-input" name="shifter_weakness"> 
       </div> 
      </div> 
     </div>   
    </div> 
<?php echo form_submit('submit','Confirm', 'class="btn btn-success btn-lg" id="submit"');?> 
<?php echo form_close();?> 

CONTRÔLEUR

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

class Forms extends CI_Controller { 
    public function session(){ 
    if($this->session->userdata('logged_in')){ 
     $session_data = $this->session->userdata('logged_in'); 
     $data['id'] = $session_data['id']; 
     $data['username'] = $session_data['username']; 
     $data['password'] = $session_data['password']; 
     return $data; 
    } 
} 
    public function submit_shifter_form(){ 
     $shifter = array(
      'course' => $this->input->post('shifter_course'), 
      'reason' => $this->input->post('shifter_reason'), 
      'strength' => $this->input->post('shifter_strength'), 
      'weakness' => $this->input->post('shifter_weakness'), 
      'futureContribution' => $this->input->post('shifter_contribution') 
     ); 
     $session_data = $this->session->userdata('logged_in'); 
    $id = $session_data['id']; 
     $this->load->model('forms_model'); 
     $this->forms_model->shifter_form_submit($id,$shifter); 
     redirect(site_url('profile'), 'refresh'); 
    } 

} 

MODÈLE

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

class Forms_Model extends CI_Model{ 
    function shifter_form_submit($id,$shifter) 
    { 
     $this->db->insert('tbl_prototype_shifter',$shifter); 
      $insert_id = $this->db->insert_id(); 
      $shift = array(
      'studentId' => $id 
      ); 
      $this->db->where('id', $insert_id); 
      $this->db->update('tbl_prototype_shifter', $shift); 
    } 

} 

Mes autres formes soumettent correctement les données dans ma base de données, après avoir ajouté cette nouvelle forme, je semblait comme ça ne se soumet plus correctement. S'il vous plaît, quelqu'un peut-il aider, je ne peux pas savoir où je suis allé mal

+0

Où est votre bouton d'envoi? –

+0

Je viens de l'éditer, désolé –

+0

Etes-vous sûr que

Répondre

2

Vous avez obtenu

$shifter = array(
      'course' => $this->input->post('shifter_course'), 
      'reason' => $this->input->post('shifter_reason'), 
      'strength' => $this->input->post('shifter_strength'), 
      'weakness' => $this->input->post('shifter_weakness'), 
      'futureContribution' => $this->input->post('shifter_contribution') 
     ); 

Mais votre formulaire,

shifter_reason 
shifter_strength 
shifter_weakness 

repos Donc tous les champs seront nuls, est votre table acceptant null pour les champs restants?

Si aucun jeu alors une valeur par défaut,

Dans contrôleur

Assurez-vous base de données chargée:

function __construct() { 
    parent::__construct(); 
    $this->load->database(); 
    $this->load->model('forms_model'); 
    $this->load->helper('form'); 
} 

et dans l'autre méthode,

$session_data = $this->session->userdata('logged_in'); 
$this->forms_model->shifter_form_submit($session_data['id'],$shifter); 

Dans le modèle,

function shifter_form_submit($id,$shifter) 
{ 
     // try to insert 
     $this->db->insert('tbl_prototype_shifter',$shifter); 

     // check if insert was ok 
     if($this->db->affected_rows() > 0) 
     { 
       // if ok get last insert id 
       $insert_id = $this->db->insert_id(); 

       // data to be updated 
       $shift = array(
         'studentId' => $id 
      ); 

       // update 
       $this->db->where('id', $insert_id); 
       $this->db->update('tbl_prototype_shifter', $shift); 
     }else{ 
       // failed to insert, so cannot update other table too 
       echo $this->db->_error_message(); 
       throw new Exception("Can't insert the resource"); 
     } 

} 
+0

J'ai ajouté une alerte dans else, toujours rien. J'ai vérifié les noms de fichiers en cas de faute de frappe, et ne pas encore soumettre –

+0

@ domin0101 voir ma mise à jour –

+0

Je l'ai essayé, toujours pas soumis –

0

Essayez ceci avec votre bouton de soumission.

<?php echo form_submit(array('id' => 'submit', 'value' => 'Submit')); ?>