Petit pb sélection liste déroulante php/mysql [Résolu]

Signaler
Messages postés
32
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
27 février 2006
-
Messages postés
32
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
27 février 2006
-
Bonjour à celui qui pourra m'aider.
Ce qui se passe,l'utilisateur sélectionne une référence dans sa liste déroulante, des données s'affichent en fonction de celle-ci, mais je veux que le formulaire soit réaffiché lui aussi sur la meme page. Là, pas de soucis mais j'aimerais qu'il reste sélectionné sur la sélection de l'utilisateur dans la liste déroulante.
Mon pb, la référence affiché ne correspond pas à la dernière et certaines réf sont absentes dans la liste quand je le réaffiche.
C'est chaud mais je sais que c'est possible.
De plus, j'aimerais qu'au démarrage, comme rien n'est sélectionné, le selected reste vide.
j'essai d'afficher en option selected, la dernière référence sélectionné


Merci de m'aider, je galère!!!
voilà mon code:
<form name=formulaire method="post" action="validformulaire.php">
<TABLE id="table" style="position:relative; top:11em;">
<TR align=JUSTIFY >
<!--Référence-->
<TD>Référence série:*</TD>
<TD><select size="1" name="ref" onchange="Griser();">
<?
$requete = "SELECT ref FROM produits";
$resultat = mysql_db_query ($base,$requete);
$nb = mysql_num_rows ($resultat);
for ($i = 0; $i <= $nb; $i++)
{
echo ("<option");
$ligne = mysql_fetch_assoc ($resultat);
//if($ligne["ref"]==$ref) echo("selected");
echo(">
" . $ligne["ref"] ."

</option>");
if ($i != $nb) echo ("&nbsp;

");
}
?>
</select>
</TD>

6 réponses

Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
$requete = "SELECT ref FROM produits";
$resultat = mysql_db_query ($base,$requete);
$nb = mysql_num_rows ($resultat);
echo '<select size="1" name=" reference " onchange ="Griser();">';
echo "<option value= ''>--------------------</option>";

for ($i = 0; $i < $nb ; $i++)
{
$ref = mysql_result ($resultat,$i,'ref');
echo "<option value=' ".$ref. " ' ";
if($ref==$reference) echo ' selected '
echo '>$ref</option>';
}
echo '</select>';

un peu plus clair mais à mettre au point
mais sur 'on change' tu dois soumettre le formulaire en appelant le même page
pour récupérer $reference et le comparer en chargeant la listbox
(en fait ta page doit afficher le formulaire dans une premiere partie
et le traiter dans la deuxième)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Hello,

si j'ai bien compris, tu dois utiliser, dans l'option voulue, selected="selected".
Si sa valeur correspond au post sélectionné par ton utilisateur.
Messages postés
32
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
27 février 2006

je bosse sur la solution de sidf mais ya d pti truc a refaire donc je teste, je teste.
En fait, pour être un peu plus, précis:
C'est un formulaire pour une entreprise.
l'utilisateur a des sélections à faire dans 4 listes déroulantes et 1 boite de saisie:(ligne, numéro,nom,item,reference)
l'item est lié a la ref dc l'utilisateur choisi de taP l'item ou de sélectionner la ref ( d'où l'utilisation de mon onChange="Griser()";)
une fois validé, 4liens sont disposés sous le formulaire qu'il a valiD (sur la m page).
Le problème c'est que les champs sélectionnés disparaissent a chak appui sur mon submit validation et j'aimerais qu'il reste pour qu'il n'est pas besoin de se reselectionner tous les champs a chaque recherche de référence( style le nom, la ligne,...)
pour repondre a Malalam, c'est ça en quelque sorte mais c'est relou a faire!
je sais pas si je me suis fait comprendre, je débute un peu en php
merci de votre aide les mecs
Messages postés
32
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
27 février 2006

J'ai retravaillé la solution de sidf et ça semble marcher, jbalance ce que j'ai fait, ça pourra toujours servir à quelqu'un dans la détresse.
Si quelqu'un a qqc de plus optimisé, envoyez le moi, ça me sera vraiment utile.
merci les gars, C vraimen cool
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

en reprenant l'exemple :

$resultat = mysql_query ('SELECT ref FROM produits');

echo '<select size="1" name=" reference " onchange ="Griser();">
<option value="">--------------------</option>';

while($r=mysql_fetch_row($resultat))
{
$ref = mysql_result ($resultat,$i,'ref');
echo '<option value="',$r[0],'" ';
if($r[0]===$_POST['reference']) echo ' selected="selected"';

echo '>',$r[0],'</option>';
}

echo '</select>';

ça devrait fonctionner.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
32
Date d'inscription
jeudi 2 février 2006
Statut
Membre
Dernière intervention
27 février 2006

Bonjour tt le monde, j'ai vu que j'avais oublié de mettre mon code:
<TD><select size="1" name="ref" onchange="Griser();">
<option value=''>----------------------------</option>
<?
$requete = "SELECT ref FROM produits";
$resultat = mysql_db_query ($base,$requete);
$nb = mysql_num_rows ($resultat);
for ($i = 0; $i < $nb; $i++)
{
$reference = mysql_result ($resultat,$i,'ref');
echo "<option value= ".$reference;
if($ref==$reference) echo ' selected ';
echo ">".$reference."</option>";
}
?>
</select>
</TD>

Sinon je vais tester la solution de Anthomicro
bon week à tous.