Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2011, 13h22   #1
 
Homme
Étudiant
Inscription : mai 2011
Messages : 12
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 : 12
Points : -1
Points : -1
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 :
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>
adebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 14h10   #2
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
c'est normal car quand tu postes ton formulaire :

Code :
<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
__________________
Vive les roues en pierre
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 14h26   #3
 
Homme
Étudiant
Inscription : mai 2011
Messages : 12
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 : 12
Points : -1
Points : -1
merci d'avoir pensez à moi, mais je ne comprend pas trop quant tu di de reposter mes champs en creant des champs hidden ?
adebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 14h27   #4
 
Homme
Étudiant
Inscription : mai 2011
Messages : 12
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 : 12
Points : -1
Points : -1
Citation:
Envoyé par Djakisback Voir le message
Salut,
c'est normal car quand tu postes ton formulaire :

Code :
<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 ?
adebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 14h59   #5
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Quelque chose de ce type :

Code :
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.
__________________
Vive les roues en pierre
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 14h04   #6
 
Homme
Étudiant
Inscription : mai 2011
Messages : 12
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 : 12
Points : -1
Points : -1
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 :
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>
adebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h47.


 
 
 
 
Partenaires

Hébergement Web