Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

CodeIgniter PHP Discussion :

Insertion des données d'un tableau d'input dans une BD


Sujet :

CodeIgniter PHP

  1. #1
    Candidat au Club
    Insertion des données d'un tableau d'input dans une BD
    jai un probleme je suis entrain de m'exercer en php a l'aide du framework CodeIgniter et je voudrai faire un enregistrement dans une base de donnée a l'aide d'un tableau d'input mais je recois une erreur voici alors j'ai essayer de juste verifier si je reccupere quand meme tres bien les données de mon formulaire en faisant un echo pre de $_post mais rien n'est recuperer ... voici les differents code a savoir controleur, modèle et la vue

    l]la vue
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
                    <div class="login-logo">
                        <a href="<?php echo base_url('home/cycle')?>" class="btn btn-default" >
                            back
                        </a>
                    </div>
                    <div class="login-form">
                   <!--<form action="<?php echo base_url('home/submitParTab')?>" method="POST">-->
                      <form action="#" method="POST">
                        <table>
                            <thead>
                            <tr>
                                <td><strong>nom</strong></td>
                                <td><strong>description</strong></td>
                            </tr>
                            </thead>
                            <?php
     
                            for($i=0;$i<10;$i++){
                            ?>
                             <tr>
                                <td><input type="text" name="nom"/></td>
                                <td><input type="text" name="desc"/></td>
                             </tr>
                            <?php
                            }
                            ?>
                        </table><br>
     
                            <button class="btn btn-primary " type="submit" style="width: 10%;" name="enregistrer">Enregistrer</button>
     
                        </form>
                    </div>


    le modèle
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    class cycle_model extends CI_model{
          public function submitParTab(){
                for ($i=0; $i <3 ; $i++) { 
                $values=array(
                "nom_cycle"    =>$this->input->post("nom"),
                "desc_cycle"   =>$this->input->post("desc")
                 );
     
                }
             $this->db->insert('cycle',$values);
              if($this->db->affected_rows()>0)
                {return 
                  true;
                } else return false;
            }
    }


    le controleur
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
     
    class Home extends CI_Controller {
         function __construct()
    		{
    			parent::__construct();
    			$this->load->model('cycle_model', 'model');
                    }
    	public function cycle()
    	{
     
    		$data['blogs']=$this->model->get();
    		//recuperer les données de la table mention
    		$data['mentions']=$this->model->getMention();
    		$this->load->view('pages/cycle.php',$data);
     
    	}
     
    	public function addParTab()
    	{
        $this->load->view('templates/header.php');
    	$this->load->view('pages/add_cycle_tab.php');
    	 $this->load->view('templates/footer.php');
     
    	}
       }


    la page cycle(la liste des enregistrement de la BD)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     
    <?php $this->load->view('templates/header') ?>
     
     
        <!-- Left Panel -->
    <?php $this->load->view('templates/leftbar') ?>
        <!-- Right Panel
     
         <div id="right-panel" class="right-panel">
     
             Header-->
            <?php $this->load->view('templates/headAdmin') ?>
            <!-- Header-->
    	<!-- Page Heading -->
        <div class="row">
     
            <div class="col-12">
                <div class="card">
                    <div class="card-header">
                        <strong class="card-title"><?//= $title.'  ' ;?></strong>
                             <?php 
                           if($this->session->flashdata('success_msg')){
                         ?>
                         <div>
                             <?php echo $this->session->flashdata('success_msg');?>
                         </div>
                         <?php 
                         }else 
                          ?>
                         <div>
                             <?php echo $this->session->flashdata('error_msg');?>
                         </div>
     
     
     
                        <a href="<?php echo base_url('home/add') ?>" data-toggle="modal" data-target="#Modal_Add_Etudiant" class="btn btn-success float-right">
                        <i class="glyphicon glyphicon-plus fa fa-plus"></i> Ajouter un cycle</a>
     
                        <a href="<?php echo base_url('home/addParTab') ?>" data-toggle="modal" data-target="#Modal_Add_Etudiant" class="btn btn-success float-right">
     
                            <i class="glyphicon glyphicon-plus fa fa-plus"></i> Ajouter un cycle par Tab</a>                        
                    <div id="message_erreur"></div>
                    </div>
                    <div class="card-body">
                        <table id="bootstrap_data_table" class="table table-striped table-bordered " >
                            <thead>
                                <tr>
                                    <th class="serial">#</th>
                                    <th>Nom cycle</th>
                                    <th>descripion cycle</th>
     
                                    <th>Action</th>
                                </tr>
                            </thead>
                            <tbody id="show_data">
                                <?php 
                                    if($blogs)
                                    {
                                        foreach($blogs as $blog)
                                        {
                                      ?>
                                <tr>
                                    <td><?php echo $blog->id_cycle ;?></td>
                                    <td><?php echo $blog->nom_cycle ;?></td>
                                    <td><?php echo $blog ->desc_cycle ;?></td>
                                    <td><a href="<?php echo base_url('home/modifier/'.$blog->id_cycle);?>"  class="btn btn-info">modifier</a>
                                        <a href="<?php echo base_url('home/delete/'.$blog->id_cycle);?>"  onclick="return confirm('etes vous sur de vouloir supprimer?');"  class="btn btn-danger">supprimer</a> 
                                    </td>
                                </tr>
                                    <?php
                                        }
                                    }
                                 ?>
     
     
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div> 
      <?php $this->load->view('templates/footer') ?>

  2. #2
    Invité
    Invité(e)
    Bonjour,

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                            <?php
                            for($i=0;$i<10;$i++){
                            ?>
                             <tr>
                                <td><input type="text" name="nom"/></td>
                                <td><input type="text" name="desc"/></td>
                             </tr>
                            <?php
                            }
                            ?>

    1- Là, tu fais une boucle (for). Il faut ajouter des crochets aux name :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                            <?php
                            for($i=0;$i<10;$i++){
                            ?>
                             <tr>
                                <td><input type="text" name="nom[]"/></td>
                                <td><input type="text" name="desc[]"/></td>
                             </tr>
                            <?php
                            }
                            ?>

    2- On récupère alors des array :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $nom_arr = $_POST['nom']; // array
    $desc_arr = $_POST['desc']; // array

    3- Pour les enregistrer, on peut faire une boucle (foreach) :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    foreach( $_POST['nom'] as $i => $val )
    {
       $nom = $val; // ou $_POST['nom'][$i]
       desc = $_POST['desc'][$i];
       // .....
    }


    4- Voilà pour le principe.
    A toi de l'adapter à ton code.

###raw>template_hook.ano_emploi###