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

Langage PHP Discussion :

'Undefined index' sur une liste issue d'une requete


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut 'Undefined index' sur une liste issue d'une requete
    Bonsoir,

    Je rame dur ...
    J'utilise le code ci-dessous.
    Le premier formulaire est obtenu par une requete et le second (raccourci pour l'exemple) est entré en "dur".
    A la fin je souhaite afficher les résulats de ce que j'ai selectionné dans les listes en cliquant sur le bouton OK.

    Probleme :
    Quand j'ouvre ma page, j'ai une erreur "Notice: Undefined index: NOMSVILLES " sur la ligne :
    {echo '<p>Votre choix de ville est : ' .htmlspecialchars($_POST['NOMSVILLES']) . '</p>';}

    Quand je selectionne des options dans les 2 listes et que je clique OK.
    Ca fontionne pour Choix1 mais toujours le message d'erreur pour NOMSVILLES.
    J'ai trouvé des infos sur "isset" mais je n'y comprend rien ...
    !

    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
     
     <?php
    	require("connect.php"); 
    	// 1er formulaire
    	echo "<FORM method=\"POST\">";
    	echo "<select name=\"NOMSVILLES\">";
    	echo "<option>- - - Choisir un lieu - - -</option>";
    	$resultat = mysql_query ($requete1);
    	while($val=mysql_fetch_array($resultat)) {
    		echo "<option>".$val["VILLE"]."</option>\n";
    		}
    	echo "</select>";
    	echo "</form>";
     
    	// 2eme formulaire
    	echo "<FORM method=\"post\">";
    		echo "<select name=\"choix1\">";
    		echo "<option>100 m</option>";
    		echo "</select>";
    		echo "<p>";
    	echo "<input name=\"submit\" type=\"submit\" value=\"OK\" />";
    	echo "</form>"
    ?>
    <?php
    	{echo '<p>Votre choix de ville est : ' .htmlspecialchars($_POST['NOMSVILLES']) . '</p>';}
    	{echo '<p>Votre choix de distance est : ' .htmlspecialchars($_POST['choix1']) . '</p>';}
    ?>
    Edit : J'ai également cette erreur sur 'Choix1' quand j'ouvre ma page.
    quand j'appuie sur OK l'erreur disparait sur 'Choix1' mais subsiste sur 'NOMSVILLES'

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut en effet savoir si on a recu une variable avant de penser vouloir l'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    if (isset($_POST['NOMSVILLES'])) {echo '<p>Votre choix de ville est : ' .htmlspecialchars($_POST['NOMSVILLES']) . '</p>';}
    ?>

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonsoir sabotage,

    Merci pour votre réponse.
    Je n'ai effectivement plus de message d'erreur mais je n'ai pas non plus l'affichage du résultat.
    Le If doit renvoyer False , donc la variable ne doit pas etre initialisée ..
    Mais comment fait on pour l'initialiser ?

    Je suis désolé mais je suis un vrai newbie.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il ne faut pas que tu fasses deux formulaire : le bouton submit n'envoi que les données appartenant à son formulaire.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Re,

    !? avec le code suivant, submit envoie les données des 2 formulaires :
    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
     
    <?php
    	// 1er formulaire
    	echo "<FORM method=\"post\">";
    		echo "<select name=\"choix1\">";
    		echo "<option>toto</option>";
    		echo "<option>tutu</option>";
    		echo "</select>";
    		echo "<p>";
    	// 2eme formulaire
    	echo "<FORM method=\"post\">";
    		echo "<select name=\"choix2\">";
    		echo "<option>riri</option>";
    		echo "<option>fofo</option>";
    		echo "</select>";
    		echo "<p>";
    	echo "<input name=\"submit\" type=\"submit\" value=\"OK\" />";
    	echo "</form>"
    ?>
    <?php
    	{echo '<p>Votre choix de distance est : ' .htmlspecialchars($_POST['choix1']) . '</p>';}
    	{echo '<p>Votre choix de distance est : ' .htmlspecialchars($_POST['choix2']) . '</p>';}
    ?>
    Mon probleme semble venir du fait que ma premiere liste est generée par une requete MySQL...
    En fait, je souhaite faire ce que fait ce code (qui fontionne) avec des listes générée par requete (comme dans le 1er Post de ce Fil).
    Merci pour ton aide.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ton code n'est pas bon, tu as toujours deux <form> et tu n'a pas les isset()

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Re,

    Il y a surement des erreurs dans mon code, c'est pour cela que je fais appel au Forum.
    Cependant, tel qu'il est, il fait (presque) ce que je souhaite faire ...

    Je voudrais pouvoir renseigner plusieurs listes, comme sur cette page par exemple : http://www.rue-montgallet.com/prix/7.../Disques-durs/

    et en cliquant sur le bouton faire une requete (pour l'instant, si j'arrive à afficher les variables ce sera bien )

    Quelqu'un peut-il :
    - me donner la syntaxe idoine
    - m'aider à corriger/adapter mon code
    - m'aider à trouver les documents ou exemples à consulter
    - me mettre sur la voie d'une solution

    Merci d'avance

  8. #8
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    	require('connect.php'); 
    	// un seul formulaire
    	echo '
    	<form method="post" action="">
    	<select name="NOMSVILLES">
    		<option>- - - Choisir un lieu - - -</option>
    	';
    	$resultat = mysql_query ($requete1);
    	while($val=mysql_fetch_array($resultat)) {
    		echo '<option>'.$val['VILLE'].'</option>'."\n";
    	}
    	echo '</select>';
     
    	// formulaire (suite)
    	echo '
    	<select name="choix1">
    		<option>100 m</option>
    	</select>
    	<p>
    	<input name="submit" type="submit" value="OK" />
    	</form>
    	';
    ?>
    Tu peux afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    	echo '<p>Votre choix de ville est : ' .htmlspecialchars(@$_POST['NOMSVILLES']) . '</p>';
    	echo '<p>Votre choix de distance est : ' .htmlspecialchars(@$_POST['choix1']) . '</p>';
    ?>
    Note : @$_POST['NOMSVILLES'] et @$_POST['choix1'] :
    l'@ permet de passer outre l'erreur, si le champ n'est pas renseigné ...

    Tu peux mettre aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    	if(isset($_POST['NOMSVILLES']))
    	{ echo '<p>Votre choix de ville est : ' .htmlspecialchars($_POST['NOMSVILLES']) . '</p>'; }
    	if(isset($_POST['choix1']))
    	{ echo '<p>Votre choix de distance est : ' .htmlspecialchars($_POST['choix1']) . '</p>'; }
    ?>
    Note : garde les ' pour PHP, et les " pour le html.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Ca y est, j'ai compris.
    J'avais un </form> de trop. D'où 2 formulaires d'1 liste.
    Maintenant j'ai 1 formulaire de 2 listes.

    Pour les isset, j'avais à peu pres compris. Maintenant, c'est clair.

    Merci beaucoup

    NB - Sur un autre Post, j'ai mis RESOLU en modifiant le Titre. C'est comme ça qu'il faut faire ?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non, il faut cliquer sur le bouton Résolu en bas.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/02/2015, 14h47
  2. [SP-2010] Griser un champ en fonction d'une valeur issue d'une liste de choix
    Par Blooster dans le forum SharePoint
    Réponses: 3
    Dernier message: 07/06/2013, 12h24
  3. [AJAX] liste liée a une liste liée a une liste
    Par dirty_harry dans le forum AJAX
    Réponses: 2
    Dernier message: 03/07/2009, 11h18
  4. acceder à une liste contenue dans une liste
    Par CPI_en_mousse dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 12/06/2007, 08h33
  5. remplir une liste à partir d'une liste
    Par LeXo dans le forum Access
    Réponses: 7
    Dernier message: 14/04/2006, 12h29

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