Liste deroulante et champs texte - PHP - Programmation
Marsh Posté le 03-02-2007 à 10:53:11
Bonjour,
Le problème est que la liste déroulante (listbox) est gérée par le navigateur du coté de l'utilisateur, alors que la base de données se trouve sur le serveur. Il y a donc deux solutions.
1. Soit envoyer dans la page HTML, en même temps que la listbox, les données correspondants à toutes les options de la listbox dans des éléments cachés, et les afficher par un javascript quand une option est sélectionnée.
2. Soit faire un submit pour que le serveur renvoie une nouvelle page contenant les données correspondant à l'option de la listbox.
Et pour infos, il vaut mieux utiliser l'événevement onChange de la listbox, plutôt que le onClick de chaque option.
Marsh Posté le 03-02-2007 à 11:03:06
Merci pour la reponse,
c'est l'événement OnChange que je n'arrive pas à faire. Pour que lors de selection d'un element de la liste deroulante, les champs texte se mettent à jour automatiquement.
Si tu as une idée ou un script qui peut resoudre mon problème , ça m'interesse.
Marsh Posté le 03-02-2007 à 12:38:30
ReplyMarsh Posté le 03-02-2007 à 22:01:15
ReplyMarsh Posté le 04-02-2007 à 08:58:49
je fais ça, mais les champs texte ne remplissent pas en selctionnant un element de la liste deroulante.
Je ne vois pas le problème , si quelqu'un peut m'aider
Desolé, c'est la base Access que j'utilise avec php
<script type="text/javascript">
function selection()
{
var lst = document.getElementById("infrast" );
if (lst.selectedIndex == -1)
{
document.getElementById("serie" ).value="";
document.getElementById("categorie" ).value="";
document.getElementById("type" ).value="";
}
else
{
document.getElementById("serie" ).value=infrast[lst.selectedIndex]["NumSerie"];
document.getElementById("categorie" ).value=infrast[lst.selectedIndex]["Categorie"];
document.getElementById("type" ).value=infrast[lst.selectedIndex]["Type"];
}
}
</script>
<FORM>
<?php
$Infrast = "select * FROM Infrastructure ";
$ret = odbc_exec ($cnx, $Infrast);
echo '<select name="infrast" id="infrast" onChange="selection()" />';
while ( odbc_fetch_row ( $ret)) {
$NumInfra = odbc_result( $ret, "Numinfra" );
$NomInfra = odbc_result( $ret, "CI" );
echo "<OPTION VALUE=".$NumInfra.">$NomInfra</OPTION>\n"; // option d'affichage
}
echo "</select>\n";
?>
<TABLE BORDER=0 >
<TR>
<TD><b>N° série :</b></dd>
<TD><input type="text" id="serie" name="serie" />
<TD><dd><b>Catégorie :</b></dd>
<TD><input type="text" id="categorie" name="catégorie" />
</TR>
<TR>
<TD><dd><b>Type :</b></dd>
<TD><input type="text" id="type" name="type" />
</TR>
</TABLE>
</FORM>
Marsh Posté le 04-02-2007 à 10:47:18
Le problème vient des lignes
Code :
|
C'est du javascript, donc exécuté sur le poste de l'utilisateur, pas sur le serveur.
La listbox nommée infrast est définie et connnue sur le poste client, mais le tableau nommé infrast n'est connu que du côté du serveur. Il faudrait transmettre le tableau infrast au client au préalable.
Marsh Posté le 04-02-2007 à 11:00:11
Comment faire pour transmettre le tableau nommé "infrast" au client?
Marsh Posté le 05-02-2007 à 05:10:34
J'ai vraiment besoin d'un aide d'urgence, car mon projet de stage est bloqué sur ce point. Je n'arrive toujours pas à savoir comment faire. SVP.
Marsh Posté le 05-02-2007 à 10:39:36
il suffit de passer ton tableau infrast à ta fonction javascript
Appel :
Onchange ='selection(<?=$infrast?> )'
Apres il faut que tu traites ton tableau a 2 dimensions en javascript
Va voir ici pour l'exemple
http://www.presence-pc.com/forum/p [...] -833-1.htm
N'hesites pas a me contacter
Marsh Posté le 06-02-2007 à 08:47:20
Merci pour le conseil sebondus,
j'ai bien compris ton explication, mais je n'arrive toujours pas à créer un tabelau "infrast" javascript à 2 dimensions à partir de la base de donnée en passant par php.
Pour la suite du code , il n'y aura pas de problème.
Si tu as une idée ou un exemple pour resoudre ce problème, ça m'aidera à finir le projet.
Marsh Posté le 29-03-2007 à 20:07:48
gadu a écrit : Merci pour le conseil sebondus, |
Bonjour, comme je suis un débutant en PHP et Javascript j'aimerais savoir comment tu as résolu ton problème. J'essaie de faire la même chose que toi et je bloque sur le même point. Le Tableau en JavaScript.
Je te remercie d'avance
Marsh Posté le 03-02-2007 à 09:29:38
Bonjour,
j'aimerai avoir une reponse à propos d'un problème. J'ai une liste deroulante chargée à partir de la base mySql et un formulaire avec plusieurs champs textes.
Je voudrais faire en sorte, lorsque je selectionne un element dans la liste deroulante, que les champs texte se remplissent à partir de la base en foncion des elements de la liste.
En quelque sorte liste deroulante et champs texte liés.
Merci