IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

PHP & Base de données Discussion :

insertion d'une liste de selection effectuée avec checkox


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut insertion d'une liste de selection effectuée avec checkox
    Bonjour à tous, j’ai un problème en voulant fais une insertion dans ma base avec la strategie suivante :
    D’abord j’ai afficher le contenu d’une << INSCRIT>> et j’ai fais une selection des enregistrements voulus à l’aide des checkbox et ensuite je recupère les enregistrements sélectionnés dans une autre page via le formulaire de selection.
    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
     
    // Voici le code  me permettant d’envoyer les enregistrements cochés dans la  page de recupération : 
    <form method='POST' action='lissection.php'>
    	<?php 
    	          while($sql=mysql_fetch_array($req))
    		{
    	       print"<tr><th name='num'>".$sql['1']."</th>";
    	        print"<th name=nom>".$sql['2']."</th>";
    		print"<th name=prenom>".$sql['3']."</th>";
    		print"<th name='datnaiss'>".$sql['4']."</th>";
    		print"<th name='lieunaiss'>".$sql['5']."</th>";
    	        print"<th name='sexe'>".$sql['6']."</th>";				
            print"<th><input type='checkbox' name='avis[]'value=".$sql['0']."></input></th></tr>"; 
      ?>           
            <input type='submit' name='Accepter' Value='Accepter'/>
    	<input type='reset' name='annuler' Value='annuler'/>
      </form>
    //au niveau de la page de recupération voilà mon code :
    <?php	   
         if(isset($_POST['Accepter'])&& ($_POST['Accepter'])== 'Accepter')
            {
    	   if((isset($_POST['avis']) && !empty($_POST['avis'])))
    	     { 
    	        foreach($_POST['avis'] as $champ=>$cle)
    	         {
    	             $res=mysql_query('select * from etudiant where num ='.$cle) or die ('<br/>requete select '.mysql_error());
    	                $data=mysql_fetch_array($res);	
    		           print"<tr><td name=n°>".$data[1]."</td>";
    		           print"<td name=nom>".$data['2']."</td>";
    		           print"<td name=prenom>".$data['3']."</td>";
    		            print"<td name='datnaiss'>".$data['4']."</td>";
    		            print"<td name='lieunaiss'>".$data['5']."</td>";
    		            print"<td name='sexe'>".$data['6']."</td>";
     
     
    	     }
     }
     
    //jusqu’ici tout fonctionne et  j’ai la liste des enregistrements cochés la page de récupération 
    //mon problème est que quand je veux enregistrer cette liste sélectionnée dans la base  avec un bouton 'confimer'  la liste recupérer  ça ne marche pas et j’ai  les msag d’erreurs suivants :
      Notice: Undefined index: avis in C:\wamp\www\LOGICIEL\lissection.php 
       Warning: Invalid argument supplied for foreach() in C:\wamp\www\LOGICIEL\lissection.php
     
    //le code pour l’enregistrement est:
    <form method='POST' action='lissection.php'>
    <?php
    	   if(isset($_POST['confirmer'])&& ($_POST['confirmer'])== 'confirmer')
     
    	 {
    		foreach($_POST['avis'] as $champ=>$cle)
    		{
                                     $req=mysql_query('select * from etudiant where num ='.$cle) or die ('<br/>requete   select '.mysql_error());
                                         $data=mysql_fetch_array($req);
     
    	                     mysql_query('INSERT INTO listretenu  VALUES   ("","'.$data['1'].'",“'.$data['2'].'","'.$data['3'].'","'.$data['4'].'","'.$data['5'].'", "'.$data['6'].'",""'.$data['8'].'")') 
                                               or die ('Erreur <br/>'.mysql_error());
     
    			   }
    		   }  
    	    ?>
     
    	   <input type='submit' name='confirmer' Value='confirmer'>
    	  </form>

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    c'est normal car quand tu postes ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method='POST' action='lissection.php'>
    tu ne repostes pas $_POST['avis']. Plusieurs solutions :
    - utiliser les sessions php
    - reposter tes champs en créant des champs hidden ou disabled dans ton dernier formulaire

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    merci d'avoir pensez à moi, mais je ne comprend pas trop quant tu di de reposter mes champs en creant des champs hidden ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Salut,
    c'est normal car quand tu postes ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method='POST' action='lissection.php'>
    tu ne repostes pas $_POST['avis']. Plusieurs solutions :
    - utiliser les sessions php
    - reposter tes champs en créant des champs hidden ou disabled dans ton dernier formulaire

    merci d'avoir pensez à moi, mais je ne comprend pas trop quant tu di de reposter mes champs en creant des champs hidden ?

  5. #5
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Quelque chose de ce type :

    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
    <form method='POST' action='lissection.php'>
    <?php
    	   if(isset($_POST['confirmer'])&& ($_POST['confirmer'])== 'confirmer')
     
    	 {
    		foreach($_POST['avis'] as $champ=>$cle)
    		{
                                     $req=mysql_query('select * from etudiant where num ='.$cle) or die ('<br/>requete   select '.mysql_error());
                                         $data=mysql_fetch_array($req);
     
    	                     mysql_query('INSERT INTO listretenu  VALUES   ("","'.$data['1'].'",“'.$data['2'].'","'.$data['3'].'","'.$data['4'].'","'.$data['5'].'", "'.$data['6'].'",""'.$data['8'].'")') 
                                               or die ('Erreur <br/>'.mysql_error());
     
    			   }
    		   }
    		foreach($_POST['avis'] as $cle)
    		{
    ?><input type="hidden" name="avis[]" value="<?php echo $cle; ?>"><?php
    }
    	   <input type='submit' name='confirmer' Value='confirmer'>
    	  </form>
    qui te permet de retransférer les avis sur la dernière page.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Points : 13
    Points
    13
    Par défaut aid pour insertion d'une liste de selection effectuée avec checkbox
    merci Djakisback , je l'ai mis en pratiq et ça marche:
    mon cod final est:
    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
     
    <form method='POST' action='lissection.php'>
       <?php
    	 if(isset($_POST['confirmer'])&& ($_POST['confirmer'])== 'confirmer')
     
    		{
    		   foreach($_POST['avis'] as $champ=>$cle)
    			{
    			$req=mysql_query('select * from etudiant where num ='.$cle) or die ('<br/>requete   select '.mysql_error());
    	                 $data=mysql_fetch_array($req);
    			 mysql_query('INSERT INTO listretenu VALUES("","'.$data['1'].'","'.$data['2'].'","'.$data['3'].'","'.$data['4'].'","'.$data['5'].'",
    			 "'.$data['6'].'","'.$data['9'].'","'.$data['24'].'-'.$data['25'].'-'.$data['26'].'","'.$data['27'].'-'.$data['28'].'-'.$data['29'].'",
    			 "'.$data['8'].'","")') or die ('Erreur <br/>'.mysql_error());
     
    				}
    			 }
     
    			  foreach($_POST['avis'] as $cle)
    				{
    				 print"<input type='hidden' name='avis[]' value=".$cle.'>';
    			        } 
    		<?
    		 <input type='submit' name='confirmer' Value='confirmer'>
        </form>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD11] Lier une liste multi-select avec une rubrique?
    Par LeGugusse dans le forum WinDev
    Réponses: 6
    Dernier message: 15/12/2008, 11h49
  2. Afficher une liste déroulante (:select) avec une ArrayList
    Par tompalmeras dans le forum Struts 2
    Réponses: 3
    Dernier message: 28/04/2008, 21h15
  3. gerer une liste de selection multiple
    Par lapinours dans le forum Access
    Réponses: 5
    Dernier message: 10/04/2006, 12h21
  4. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo