Petit pb sélection liste déroulante php/mysql

Résolu
dam_37 Messages postés 32 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 27 février 2006 - 3 févr. 2006 à 09:53
dam_37 Messages postés 32 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 27 février 2006 - 4 févr. 2006 à 14:07
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

sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
3 févr. 2006 à 10:24
$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)
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2006 à 10:32
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.
0
dam_37 Messages postés 32 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 27 février 2006
3 févr. 2006 à 11:09
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
0
dam_37 Messages postés 32 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 27 février 2006
3 févr. 2006 à 11:21
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
0

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

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
3 févr. 2006 à 18:15
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>
0
dam_37 Messages postés 32 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 27 février 2006
4 févr. 2006 à 14:07
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.
0
Rejoignez-nous