Liste déroulante par methode get
dutty
-
dutty -
dutty -
Bonjour à tous,
Ce ne sera pas long du moins je pense .. je vous explique mon problème.
Souahitant une methode simple pour actualiser une liste déroulante apres selection sur une premiere j'ai lu sur un forum qu'tiliser la methode du get pouvait etre une bonne alternative quand on a pas le temps de se mettre au java.
Donc en fait j'ai deux listes 'nom' et "prénom"
Lorsque je choisis un nom et que je click sur valider , les prénoms correspondant s'affiche mais la case "nom" me remet le premier nom de l'alphabet . Je vous illustre mon probleme par un exemple.
J'ai 3 nom :adel , bordel ,cervelle (oui je sais )
admettons que pour bordel j'ai deux prenoms .
Je click sur bordel je valide la il m'affiche les deux prenoms mais en nom il m'a remis adel (le premier).
Comment puis je faire pour éviter ceci d'autant qu'une fois ces deux champs fini je souhaiter les rebalancer sur une autre page par post ce coup ci.
Je vous mail le code merci de votre attention.
<html>
<p align="center"><font color="#0000FF" size="5"> Enregistrement</font>
<body bgcolor="#BBEBC4">
<HR>
<BR>
<?php
mysql_connect("localhost", "root", "")or die ("erreur de connexion");
mysql_select_db("test")or die ("erreur de connexion à la base");
?>
<table>
<form name="nom">
<TR><TD>
Nom : <SELECT NAME='nom' size='0,20' method="get">
<?php
$sql = "SELECT distinct * FROM t_beneficiaire ORDER BY nom_beneficiaire" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["nom_beneficiaire"]."</option>\n";
}
?>
<input type="submit" value="Valider" />
<form name="prenom">
<TR><TD>
Prénom : <SELECT NAME='prenom' size='0,20' selected='choisir le prénom'>
<?php
$sql = "SELECT prenom_beneficiaire FROM t_beneficiaire where nom_beneficiaire='".$_GET[nom]."'" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["prenom_beneficiaire"]."</option>\n";
}
?>
</table>
</SELECT>
</form>
</table>
Ce ne sera pas long du moins je pense .. je vous explique mon problème.
Souahitant une methode simple pour actualiser une liste déroulante apres selection sur une premiere j'ai lu sur un forum qu'tiliser la methode du get pouvait etre une bonne alternative quand on a pas le temps de se mettre au java.
Donc en fait j'ai deux listes 'nom' et "prénom"
Lorsque je choisis un nom et que je click sur valider , les prénoms correspondant s'affiche mais la case "nom" me remet le premier nom de l'alphabet . Je vous illustre mon probleme par un exemple.
J'ai 3 nom :adel , bordel ,cervelle (oui je sais )
admettons que pour bordel j'ai deux prenoms .
Je click sur bordel je valide la il m'affiche les deux prenoms mais en nom il m'a remis adel (le premier).
Comment puis je faire pour éviter ceci d'autant qu'une fois ces deux champs fini je souhaiter les rebalancer sur une autre page par post ce coup ci.
Je vous mail le code merci de votre attention.
<html>
<p align="center"><font color="#0000FF" size="5"> Enregistrement</font>
<body bgcolor="#BBEBC4">
<HR>
<BR>
<?php
mysql_connect("localhost", "root", "")or die ("erreur de connexion");
mysql_select_db("test")or die ("erreur de connexion à la base");
?>
<table>
<form name="nom">
<TR><TD>
Nom : <SELECT NAME='nom' size='0,20' method="get">
<?php
$sql = "SELECT distinct * FROM t_beneficiaire ORDER BY nom_beneficiaire" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["nom_beneficiaire"]."</option>\n";
}
?>
<input type="submit" value="Valider" />
<form name="prenom">
<TR><TD>
Prénom : <SELECT NAME='prenom' size='0,20' selected='choisir le prénom'>
<?php
$sql = "SELECT prenom_beneficiaire FROM t_beneficiaire where nom_beneficiaire='".$_GET[nom]."'" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["prenom_beneficiaire"]."</option>\n";
}
?>
</table>
</SELECT>
</form>
</table>
A voir également:
- Liste déroulante par methode get
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Get data back - Télécharger - Récupération de données
- Liste déroulante google sheet - Accueil - Guide bureautique
5 réponses
Bonjour,
essaies un truc dans ce genre :
<form name="nom">
<TR><TD>
Nom : <SELECT NAME='nom' size='0,20' method="get">
<?php
$sql = "SELECT distinct * FROM t_beneficiaire ORDER BY nom_beneficiaire" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["nom_beneficiaire"];
if ($_GET[nom]==$val["nom_beneficiaire"]) echo 'selected';
echo "</option>\n";;
}
?>
essaies un truc dans ce genre :
<form name="nom">
<TR><TD>
Nom : <SELECT NAME='nom' size='0,20' method="get">
<?php
$sql = "SELECT distinct * FROM t_beneficiaire ORDER BY nom_beneficiaire" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["nom_beneficiaire"];
if ($_GET[nom]==$val["nom_beneficiaire"]) echo 'selected';
echo "</option>\n";;
}
?>
Bonjour,
Alors, pour commencer, ton code html est très bizarre :
- deux </table> pour un seul <table>
- des balises différentes de <tr> directement sous <table>
- des <option> sans value
- des cellules de tableau non fermées
- des <p> non fermés
- un <p> en dehors de <body> !
et d'autres choses mais qui, à côté de ces 6 premières, font figure de détails ;)
Ensuite, si tu ne demandes pas à ta page de préselectionner le nom qui vient d'être choisi, il n'y a aucune raison pour qu'elle le fasse.
Ce qui donne, au final :
Xavier
Alors, pour commencer, ton code html est très bizarre :
- deux </table> pour un seul <table>
- des balises différentes de <tr> directement sous <table>
- des <option> sans value
- des cellules de tableau non fermées
- des <p> non fermés
- un <p> en dehors de <body> !
et d'autres choses mais qui, à côté de ces 6 premières, font figure de détails ;)
Ensuite, si tu ne demandes pas à ta page de préselectionner le nom qui vient d'être choisi, il n'y a aucune raison pour qu'elle le fasse.
Ce qui donne, au final :
<html>
<body bgcolor="#BBEBC4">
<p align="center"><font color="#0000FF" size="5"> Enregistrement</font></p>
<HR>
<BR>
<?php
mysql_connect("localhost", "root", "")or die ("erreur de connexion");
mysql_select_db("test")or die ("erreur de connexion à la base");
?>
<table>
<tr>
<td>
<form name="nom" method="GET">
Nom : <select name='nom' size='0,20'>
<?php
$sql = "SELECT distinct * FROM t_beneficiaire ORDER BY nom_beneficiaire" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res))
{
if (isset($_GET['nom']) && $val['nom_beneficiaire'] == $_GET['nom'])
$selected = " selected='selected' ";
else
$selected = "";
echo "<option $selected value='{$val['nom_beneficiaire'}'>{$val["nom_beneficiaire"]}</option>\n";
}
?>
</select>
<input type="submit" value="Valider" />
</form>
</td>
</tr>
<tr>
<td>
<form name="prenom" method="GET">
Prénom : <select name='prenom' size='0,20'>
<?php
if (isset($_GET['nom']))
{
$sql = "SELECT prenom_beneficiaire FROM t_beneficiaire where nom_beneficiaire='{$_GET['nom']}'";
$res= mysql_query($sql);
while ($val=mysql_fetch_array($res))
{
echo "<option value='{$val['prenom_beneficiaire']}'>{$val["prenom_beneficiaire"]}</option>\n";
}
}
?>
</select>
</form>
</td>
</tr>
</table>
[...]
</body>
</html>Cela te convient-il ?
Xavier
Merci xavier de ton investissement ,effectivement beaucoup beaucoup d'erreur de code je me doute bien mais je part un peu dans tous les sens a cause du manque de connaissance dans le domaine et comme a l'affichage les buggs n'apparraissent pas je ne m'en souciais guère.
J'ai modifier mon code par le tiens une ligne pose probleme , celle ci
value='{$val['nom_beneficiaire'}'>{$val["nom_beneficiaire"]}</option>\n";
ne la comprenant pas trop j'ai du mal a la debugger pour te dire si oui ou non cela affiche bien ce que j'aimerais .
Merci
J'ai modifier mon code par le tiens une ligne pose probleme , celle ci
value='{$val['nom_beneficiaire'}'>{$val["nom_beneficiaire"]}</option>\n";
ne la comprenant pas trop j'ai du mal a la debugger pour te dire si oui ou non cela affiche bien ce que j'aimerais .
Merci
alors il faut modifier certian nom car le name du formulaire correspond aussi au nom de la variable passée en get....et donc tester si le contenu de la variable get correspond à ce que l'on affiche pour faire echo selected.
re ,
ok pour les accolades mais toujours en erreur ..
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in F:\php\index.php on line 29
ok pour les accolades mais toujours en erreur ..
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in F:\php\index.php on line 29
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voilà un code qui fonctionne dans une application;
$rs_codevb est le tableau des valeurs
$nb_codevb contient le nbre de valeur
à adapter
<select name="codvba">
<?php
for ($j=0;$j<$Nb_codevb;$j++){
?>
<option <?php
if ($Rs_codevb[$j]['CODEVBA'] == $tp05[codvba]) echo ' selected ';
?>
value="<?php echo $Rs_codevb[$j]['CODEVBA']; ?>">
<?php echo $Rs_codevb[$j]['CODEVBA']; ?></option>
<?php } ?>
</select>
$rs_codevb est le tableau des valeurs
$nb_codevb contient le nbre de valeur
à adapter
<select name="codvba">
<?php
for ($j=0;$j<$Nb_codevb;$j++){
?>
<option <?php
if ($Rs_codevb[$j]['CODEVBA'] == $tp05[codvba]) echo ' selected ';
?>
value="<?php echo $Rs_codevb[$j]['CODEVBA']; ?>">
<?php echo $Rs_codevb[$j]['CODEVBA']; ?></option>
<?php } ?>
</select>
Tout d'abord merci pour ta réponse , j'ai essayer de modifier avec ta ligne mais sans plus de résultat. lorsque je valide , il me trouve bien les prénoms correspondant donc ma requête passe bien mais par contre il me remet le premier nom.