Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 26/10/2007, 16h32   #1
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 95
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 95
Points : 28
Points : 28
Par défaut Problèmes d'index non défini

Au secours...

J'ai une saisie de critères par un formulaire POST qui me rends
$_POST['NOM']
$_POST['DISPONIBILITE']
$_POST['FAMILLE']
Ce formulaire appelle une page affiche_critères1.php
Dont le rôle est de traiter les options, envoyer la requête et faire afficher les données.
Je voudrais les faire afficher page par page. Le premier affichage avec la limite ici de 4 fonctionne. Aussitôt que je clique sur le lien suivant j'ai la catastrophe
Notice: Undefined index: NOM in C:\Program Files\EasyPHP 2.0b1
Notice: Undefined index: DISPONIBLE in C:\Program Files\EasyPHP 2.0b1
Notice: Undefined index: FAMILLE in C:\Program Files\EasyPHP 2.0b1

Je précise que la CASSE est bonne que le var_dump($_POST) me rend les bonnes valeur. J'ai hésité à vous envoyer le code car il est long et je veux pas abuser. Donc j'ai enlevé tous les cas sauf 1. Voilà le code

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 
</head>
</body>
<script type="text/javascript"> 
<!-- 
function FenetreImage(image, commentaire, commentaire2)
{ 
 oFenetre = window.open('','Image','width=600,height=600,toolbar=no,scrollbars=no,resizable=no');
 oFenetre.document.write("<html><head><title>"+commentaire+"</title></head>"); 
 oFenetre.document.write("<script type=\"text/javascript\">function AjusteFenetre() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+2,document.images[0].height+100); window.focus();} else { setTimeout('AjusteFenetre()',1000) } }</"+"script>");
 oFenetre.document.write("<body onload='AjusteFenetre()' onblur='window.close()' onclick='window.close()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>"); 
 oFenetre.document.write("<table width='100%' border='0' cellspacing='0' cellpadding='0' height='100%'><tr><td valign='middle' align='center'>"); 
 oFenetre.document.write("<img src='"+image+"' border='0' alt='"+commentaire2+"' title='"+commentaire2+"'>");
 oFenetre.document.write("</td></tr></table></body></html>"); 
 oFenetre.document.close(); 
 } 
//--> 
</script>
<?php
include("connect.inc");
if (($_POST['NOM'] == "")AND ($_POST['DISPONIBLE']==""))
   {
    $page = isset($_GET['page']) ? $_GET['page'] : '';  
    // Prepare le requete MySql 
    $req = "SELECT * from coleopteres WHERE (FAMILLE    ='".$_POST['FAMILLE']."')"; 
    $res = mysqli_query($connection, $req) or die ("La requête à échouée");
    // Variable nombre d'enreg par page 
    $limit=4; 
    if(!isset($debut)) $debut=0; 
    $debut=$page*$limit; 
    // Compte le nombre de champ 
    $nb_total=mysqli_num_rows($res); 
    // Requete 
		$limite=mysqli_query($connection,"$req limit $debut,$limit");
		$_POST['NOM']="Non renseigné";
		$_POST['DISPONIBLE']="Non renseignée";
 
		// Affiche le page par page avec ses liens 
    if ($page>0)
		{ 
    $precedent=$page-1; 
    echo "<a href=\"". $_SERVER['PHP_SELF'] . "?page=$precedent\">PRECEDENT</a>"; 
    } 
    $i=0; 
    $j=1; 
    if($nb_total>$limit) 
		{ 
    while($i<($nb_total/$limit))
		{ 
    if($i!=$page){echo "<a href=\"". $_SERVER['PHP_SELF'] . "?page=$i\>$j</a> ";}
    else { echo "<b>$j</b>";} 
    $i++;$j++; 
    } 
    } 
    if($debut+$limit<$nb_total)
		{ 
    $suivant=$page+1;
		echo "<a href=\"". $_SERVER['PHP_SELF'] . "?page=$suivant\">SUIVANT</a>";
    } 
    //Affichage le contenu de votre table 
    //avec une limite, dans l'exemple $limit est à 4 
    $limit_str = "LIMIT ". $page * $limit .",$limit"; 
    $result = mysqli_query($connection, "SELECT * from coleopteres WHERE (FAMILLE    ='".$_POST['FAMILLE']."') $limit_str"); 
	 }
echo "<font color=#CC3300><big><b><i>Rappel de vos critères :&nbsp;&nbsp;&nbsp;
                                     $nb_total insectes rendus.</i></b></big></font><br>";
$rappelcritère['Le nom contient &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:'] = $_POST['NOM'];
$rappelcritère['La disponibilité est&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '] = $_POST['DISPONIBLE'];
$rappelcritère['La famille choisie &nbsp;&nbsp;&nbsp;&nbsp;: '] = $_POST['FAMILLE'];
echo "<table border=0 cellpadding=3 cellspacing=3>";
foreach($rappelcritère as $critère => $valeur)
       {
			  echo"<tr><td><font color=#3300ff>$critère</font></td><td><font color=#009999>$valeur</font></td></tr>";
			 } 
echo "</table>";"<br>";"<br>";
echo "<table width='100%' border='1' bordercolor=#FFCC66 bgcolor=#FFFFCC cellpadding='4' cellspacing='0'>";
echo "<br>";"<br>";	
echo "<tr> <td colspan='7'></td></tr> 
      <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Référence</strong></font></div></td>
      <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Nom</strong></font></div></td>
      <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Famille</strong></font></div></td>
      <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Origine</strong></font></div></td>
      <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Prix</strong></font></div></td>
      <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Dispo</strong></font></div></td>
      <td><div align='center'><font color=#FF6600 size='3' face='Arial, Helvetica, sans-serif'><strong>Image</strong></font></div></td>			
      </tr>";
while($ligne = mysqli_fetch_assoc($result))
     {
      extract($ligne);
      echo '<tr onmouseover="this.style.background=\'#F0FFF0\';" onmouseout="this.style.background=\'#FFFFCC\';">';
 			echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$REFERENCE.'</strong></font></div></td>';
      echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$NOM.'</strong></font></div></td>';
      echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$FAMILLE.'</strong></font></div></td>';
      echo '<td><div align="left"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$ORIGINE.'</strong></font></div></td>';
      echo '<td><div align="right"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$PRIX.' €</strong></font></div></td>';
      echo '<td><div align="center"><font color=\'#FF6600\' size="2" face="Arial, Helvetica, sans-serif"><strong>'.$DISPONIBLE.'</strong></font></div></td>';
      echo '<td><div align="center"><a href=javascript:FenetreImage("../img_cetoine/'.$ligne['IMAGE'].'","'.$REFERENCE.'","Origine:'.$ORIGINE.'")>
           <img src="../img_cetoine/'.$ligne['IMAGEV'].'" border="0" class="image" align="middle" alt="Cliquez pour Agrandir"></a></td>';
      echo   '</tr>'; 
     }
echo '</table>';
?>
</body>
</html>
Merci à celles ou ceux qui pourront m'aider.
pat06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 17h42   #2
Membre confirmé
 
Inscription : juillet 2007
Messages : 201
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 201
Points : 227
Points : 227
Que donne:

acirfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2007, 08h24   #3
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 95
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 95
Points : 28
Points : 28
Bonjour,
le var_dump($_POST); me rends

array(3) { ["NOM"]=> string(13) "Non renseigné" ["DISPONIBLE"]=> string(14) "Non renseignée" ["FAMILLE"]=> string(12) "Cerambycidae" }

ce qui est vrai.
pat06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 14h06   #4
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 95
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 95
Points : 28
Points : 28
Bonjour

Personne ne peut vraiement m'aider?
J'ai essayé les sessions, le passage des variables directement dans l'URL je suis à cours d'idées....
pat06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 12h34   #5
Membre confirmé
 
Inscription : juillet 2007
Messages : 201
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 201
Points : 227
Points : 227
ca veut dire que le POST ne reçoit pas des données de ton formulaire fais nous voir le code de ton formulaire , ainsi que les différents champs.....
acirfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 13h49   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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
<?php
session_start();
 
if (isset($_POST['NOM'], $_POST['DISPONIBILITE'], $_POST['FAMILLE']) && !empty($_POST['NOM']) && !empty($_POST['DISPONIBILITE']) && !empty($_POST['FAMILLE'])) {
    if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
        function stripslashes_array($array) {
            return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array);
        }
 
        $_POST = stripslashes_array($_POST);
    }
 
    $disponibilite = $_SESSION['disponibilite'] = $_POST['DISPONIBILITE'];
    $nom = $_SESSION['nom'] = $_POST['NOM'];
    $famille = $_SESSION['famille'] = $_POST['FAMILLE'];
} else if (isset($_SESSION['NOM'], $_SESSION['DISPONIBILITE'], $_SESSION['FAMILLE'])) {
    $disponibilite = $_SESSION['disponibilite'];
    $nom = $_SESSION['nom'];
    $famille = $_SESSION['famille'];
}
 
if (!isset($disponibilite, $nom, $famille)) {
    // Afficher le formulaire
} else {
    // Faire votre requête
}


Notez qu'une requête SELECT * FROM table [...] peut être optimisée par l'usage de la fonction d'aggrégation COUNT (SELECT COUNT(*) FROM table [...]) si le but est simplement d'obtenir le nombre de résultats.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2007, 18h52   #7
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 95
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 95
Points : 28
Points : 28
Un grand merci à JulP avec qui j'ai appris beaucoup de chose.
pat06 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 15h51.


 
 
 
 
Partenaires

Hébergement Web