Recuperer valeur <select>

Fermé
speed837 Messages postés 18 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 3 juillet 2013 - Modifié par speed837 le 7/06/2013 à 09:44
 Utilisateur anonyme - 8 juin 2013 à 16:24
Bonjour,

Je n'arrive pas a trouver mon erreur et c'est pourquoi je demande votre aide !
$ReponseListe=mysql_query("SELECT * FROM 'jc8tk_cck_store_form_formclient' WHERE 1");
$Liste=mysql_fetch_array($ReponseListe);
echo'<form method="POST" action="rechercheproduit">';
?>
<select name="listeclient">
<?php
while ($Liste=mysql_fetch_array($ReponseListe))
{
?>
<option value="<?php $Liste['nomclient']?>"><?php echo $Liste['nomclient']; ?></option>
<?php } 
?>
</select>
<input type="submit" value="Rechercher">
<?php 
$clientliste = $_POST['nomclient'];
echo "le client selectionne est : $clientliste";
echo '</form></br>'; 

Pour vous expliquer rapidement mon code, j'ai mit comme action 'rechercheproduit' qui est la page où se trouve le code. Avec ce code je voulais qu'en validant mon petit formulaire contenant une simple liste dynamique, la valeur sélectionnée soit retournée (sur la même page du coup) et ainsi par la suite pouvoir faire des requêtes SQL en rapport avec cette valeur pour obtenir des informations sur le client sélectionné.

(L'avant dernière et l'avant avant dernière ligne sont le résultat de mon dernier test qui malheureusement ne fonctionne pas :/ ---> mon problème)

J'en profite aussi pour vous demander votre aide sur un autre problème concernant ce même bout de code. En effet dans ma liste qui s'affiche il me manque un client, qui s'avère être le client en tête de ma table, je ne vois pas d'où cela peut venir.

Merci d'avance :)

5 réponses

Salut salut,

Tu dois avoir quelques messages d'erreur non?

Dans ta requête il y a des guillemets simple autour du nom de la table , enlève les.

Dans l'attribut action de la balise form ajout php à la fin du nom de ton fichier : ...action="rechercheproduit.php" ...

Lorsque tu ouvres la balise php pour instancier la value de la balise option fais un echo pour l'insérer dans le code html :
<option value="<?php echo $Liste['nomclient']?>"><?php echo $Liste['nomclient']; ?></option>

Normalement cela devrait t'afficher la liste des clients de ta table dans le select (la colonne en base de donnée est bien nommée nomClient?)

Ensuite lors de la soumission du formulaire pour récupérer celui sélectionner il faut utiliser le nom de balise select.
Au lieu de
$clientliste = $_POST['nomclient'];
écris plutôt
$clientliste = $_POST['listeclient'];


Résolu? ===> [RESOLU]
1
speed837 Messages postés 18 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 3 juillet 2013
7 juin 2013 à 11:53
C'est niquel ! je te remercie grandement kyser soze :)

A propos du point
"Dans l'attribut action de la balise form ajout php à la fin du nom de ton fichier : ...action="rechercheproduit.php" ... "
Je ne dois pas ajouter le .php a la fin car j'utilise le CMS Joomla et donc les pages sont générées avec plusieurs fichiers php en même temps ^^ mais j'avoue que je ne l'ai pas précisé donc c'est ma faute :x

Pour les quotes autour de ma table ça n'a rien changé car ce n'était pas des quotes mais des Alt Gr + 7 = ' ^^

En tout cas grâce à toi j'arrive désormais à avoir la valeur sélectionnée dans ma variable :)

Je vais faire mon lourd mais comment pourrais-je faire pour qu'en rechargeant ma page la valeur sélectionnée précédemment reste sélectionnée ?
Avec un selected="selected" dans la balise <option> je présume ?
0
T'inquiètes c'est pas lourd c'est fait pour ça.
C'est exactement ce que tu as dis, en ajoutant quelques tests php c'est vite fait:
<option value="<?php echo $Liste['nomclient']?>" <?php if(isset($_POST['listeClient']) && $_POST['listeClient']==$Liste['nomClient']){ ?> selected="selected" <?php } ?> > <?php echo $Liste['nomclient']; ?></option>


Si la variable $_POST['listeClient'] existe et quelle est égale à la variable $Liste['nomClient'] on sélectionne cette balise option, donc au chargement elle sera sélectionner par défaut.

Résolu? ===> [RESOLU]
0
speed837 Messages postés 18 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 3 juillet 2013
7 juin 2013 à 14:44
J'ai eu du mal à comprendre les conditions du IF mais maintenant elles sont claires x). Malheureusement ton code ne marche pas. Au rechargement de la page la première valeur reste sélectionnée par défaut. Je l'ai réordonné de manière à ce qu'il soit plus visuel et compréhensible (pour moi bien-sur ^^) comme ceci :

<select name="listeclient">
<?php
while ($Liste=mysql_fetch_array($ReponseListe))
{
	?>
	<option value="<?php echo $Liste['nomclient']?>" <?php 
	if(isset($_POST['listeClient']) && $_POST['listeClient']==$Liste['nomClient'])
	{ 
		?> selected="selected" <?php 
	} 
	?> > <?php echo $Liste['nomclient']; ?></option><?php 
} 
?>
</select>


J'ai beau chercher je ne trouve pas d'erreur.

(Je te remercie encore de me consacrer du temps !)
0
speed837 Messages postés 18 Date d'inscription vendredi 7 juin 2013 Statut Membre Dernière intervention 3 juillet 2013
7 juin 2013 à 14:59
Je fais mon code avec NotePad++ et il y a la coloration syntaxique.
Je viens de remarquer en cliquant sur le <option...></option> que le chevron fermant > la première balise du option prenant effet se trouve être celui fermant la balise <?php ?> de l'attribut valeur. Il ne prend donc pas en compte le chevron fermant > placé à la dernière ligne du code que tu m'as indiqué.
Selon moi l'erreur vient de là mais je ne vois pas comment la corriger
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Re,

C'est parce que le nom de ta balise select est listeclient , alors que l'index de $_POST que tu utilises est listeClient .
Remplace les $_POST['listeClient'] par $_POST['listeclient']

Résolu? ===> [RESOLU]
0