Select et input....
Résolu/Fermé
sangoh
Messages postés
6
Date d'inscription
vendredi 23 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011
-
26 sept. 2011 à 02:05
Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 27 sept. 2011 à 23:06
Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 27 sept. 2011 à 23:06
7 réponses
Bonjour,
Je ne vois pas de input qui a pour name "nom", je vois bien un input "libelle". Si c'est de celui là dont tu parles, c'est normal car la variable $ligne['libelle'] n'est pas accessible en-dehors de la boucle while, de plus, ton extract() ne sert à rien, ou plutôt il fait double usage.
D'autre part, si tu cherches à tester une variable vide, c'est plus compréhensible et logique d'utiliser l'opérateur de comparaison != (différent de) ou bien d'utiliser empty(), mais chacun sa manière de programmer, du moment que toi tu arrives à relire ton code...
Je ne vois pas de input qui a pour name "nom", je vois bien un input "libelle". Si c'est de celui là dont tu parles, c'est normal car la variable $ligne['libelle'] n'est pas accessible en-dehors de la boucle while, de plus, ton extract() ne sert à rien, ou plutôt il fait double usage.
D'autre part, si tu cherches à tester une variable vide, c'est plus compréhensible et logique d'utiliser l'opérateur de comparaison != (différent de) ou bien d'utiliser empty(), mais chacun sa manière de programmer, du moment que toi tu arrives à relire ton code...
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
26 sept. 2011 à 16:49
26 sept. 2011 à 16:49
quelques erreurs complémentaire a ce que signale _construct
/* boucle de lecture de la table*/
while ($ligne = mysql_fetch_array($result))
{
if ($ligne['uf'] != "")
echo "<option value ='$ligne[uf]'>$ligne[uf]</option>\n"; //la il te manquait la fermeture </option>
}
echo"</select>\n</td></tr>"; //la erreur de frappe tu avait selct
?>
<tr>
<td>Libellé :</td>
<!-- ligne ci dessous tu ne peux pas utiliser $ligne [...] en dehors de ta boucle while
en fait ce que tu recupères ici c'est la derniere valeur de la boucle while et je ne pense que que ce soit ce que tu cherches a faire
-->
<td> <input type="text" name="libelle" value=<?php echo"$ligne[libelle]";?>></td>
</tr>
sangoh
Messages postés
6
Date d'inscription
vendredi 23 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011
26 sept. 2011 à 23:21
26 sept. 2011 à 23:21
<?php
include ("includes/connect.inc.php");
$connexion = mysql_connect ($host,$user,$password)
or die ("Connexion au serveur impossible");
$db=mysql_select_db($database,$connexion)
or die ("selection de la base de données impossible");
$sql = " SELECT uf, libelle from service order by uf";
$result = mysql_query($sql) or die ("Impossible d'executer la requete");
/*creation du formulaire contenant la liste de selection */
echo "<tr><td>Uf du services : </td>";
echo "<td><select name='services'>\n ";
/* boucle de lecture de la table*/
while ($ligne = mysql_fetch_array($result))
{
if ($ligne['uf']!="")
echo "<option value ='$ligne[uf]'>$ligne[uf] $ligne[libelle]</option>\n";
}
echo"</select>\n</td></tr>";
?>
<tr>
<td>Libellé :</td>
<td> <input type="text" name="libelle" value=<?php echo"$ligne[libelle]";?>></td>
</tr>
bon j'ai rectifié mes erreurs (enfin je crois !)
et donc si j'ai bien tout compris : les valeurs récupérer dans par ma boucle restent dans la boucle et donc je ne peux pas les par exemple récupéré cette valeur si je veux par exemple que mon <input> corresponde à mon select ?(je suis pas sur d'avoir était clair la !)
juste pour info dans la requête exécutée plus haut je récupère ma clé primaire ( ici "uf") et le champs "libelle" qui lui est associé !.
j'ai modifié mon select afin de récupérer l'uf et le libelle.
maintenant ce que je veux savoir c'est qu'une fois que j'ai ces valeurs lorsque j'en choisis une et bien d'une part dans le select je veux l'uf et dans le input le libelle associé a cet uf !
donc dois je mettre dans ma boucle mon input ?
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
27 sept. 2011 à 09:16
27 sept. 2011 à 09:16
je crois comprendre ce que tu veux:
qd on selection un service uf dans le select ça affiche dans l'input la valeur de libelle correspondante.
il faut passer par du javascript pour réaliser ça, car le choix dans le select va déclencher l'affichage correspondant
je dois m'absenter je te fais un bout de code plus tard
qd on selection un service uf dans le select ça affiche dans l'input la valeur de libelle correspondante.
il faut passer par du javascript pour réaliser ça, car le choix dans le select va déclencher l'affichage correspondant
je dois m'absenter je te fais un bout de code plus tard
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
27 sept. 2011 à 10:22
27 sept. 2011 à 10:22
Voilà j'espère ne pas avoir fait de fautes de frappe:
<head>
<script type="text/javascript">
//initialisation de l'array JS
var tab_services= new Array();
//fonction qui affiche la valeur correspondante dans l'input
function affiche_input(){
//on lit ce qui a été selectionné dans la liste
var service=document.getElementById('services').value;
if(service != "-1"){ //si ce n'est pas la première ligne "choisissez"
//on modifie la value de l'input avec la valeur correspondante au service selectionné lue dans l'array
document.getElementById('libelle').value = tab_services[+'"'+service+'"'];
}
}
</script>
</head>
<?php
include ("includes/connect.inc.php");
$connexion = mysql_connect ($host,$user,$password)
or die ("Connexion au serveur impossible");
$db=mysql_select_db($database,$connexion)
or die ("selection de la base de données impossible");
$sql = " SELECT uf, libelle from service order by uf";
$result = mysql_query($sql) or die ("Impossible d'executer la requete");
/*creation du formulaire contenant la liste de selection */
echo '<tr><td>Uf du services : </td>';
echo '<td><select name="services" id="services" onchange="affiche_input();">\n ';
echo '<option value=-1>-- Choisissez --</option>'; //cette ligne c'est pour qu'il y ait un changement dans tout les cas sinon si selection ligne 1 ça ne fait pas le onchange
/* boucle de lecture de la table*/
while ($ligne = mysql_fetch_array($result))
{
if ($ligne['uf']!="")
echo '<option value ="'.$ligne['uf'].'">'.$ligne['uf'].' </option>\n';
//la on va charger l'array initialisé plus haut, c'est un array dont les index sont alphanum (correspondant aux services) et les valeurs = les libellés correspondants
?>
<script type="text/javascript">
var tab_services["<?php echo $ligne['uf']; ?>"] = "<?php echo $ligne['libelle']; ?>";
</script>
<?php
} //fin boucle while
echo"</select>\n</td></tr>";
?>
<tr>
<td>Libellé :</td>
<td> <input type="text" name="libelle" id="libelle" value=""></td>
</tr>
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
27 sept. 2011 à 13:22
27 sept. 2011 à 13:22
j'ai eu un peu plus de temps pour tester, deux petites rectifs:
dans la fonction JS:
et dans la boucle while
dans la fonction JS:
if(service != "-1"){ //si ce n'est pas la première ligne "choisissez"
//on modifie la value de l'input avec la valeur correspondante au service selectionné lue dans l'array
document.getElementById('libelle').value = tab_services[service]; //cette ligne modifiée, plus le else rajoute
}else{
document.getElementById('libelle').value = ""; //si la première ligne "choisissez" on vide l'input
}
et dans la boucle while
<script type="text/javascript"> tab_services["<?php echo $ligne['uf']; ?>"] = "<?php echo $ligne['libelle']; ?>"; //supprimer var </script>
sangoh
Messages postés
6
Date d'inscription
vendredi 23 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011
27 sept. 2011 à 22:43
27 sept. 2011 à 22:43
je te remercie c'est exactement ce que je voulais faire.....je me doutais bien qu'il fallait du js mais je ne savais pas comment l'écrire !
je te remercie vraiment beaucoup !
si tu le permet j'aimerais bien faire appelle a tes connaissances si cela ne te dérange pas !
je te remercie vraiment beaucoup !
si tu le permet j'aimerais bien faire appelle a tes connaissances si cela ne te dérange pas !
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
27 sept. 2011 à 23:06
27 sept. 2011 à 23:06
ok