Remplir un formulaire dynamiquement à partir d'un choix d'une liste déroulante

nimont010 Messages postés 30 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 16 avril 2010 - 16 avril 2010 à 01:43
nimont010 Messages postés 30 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 16 avril 2010 - 16 avril 2010 à 23:09
nizar
bonjour à vous tous;
je suis en train de développer une applicatioln web et j'ai rencontrer un pbl et j'ai besoin de vos aident:

Idée:
-remplir les champs d'un formulaire à partir d'un choix d'une liste déroulante à partir de ma base de données suit à l'evenement 'onchange()'.
-les valeurs de la liste eux mm sont remplis dynamiquement à partir de la base (j'ai pu faire ce truc)
pbl: le reste des champs(textfield) j'ai pas pu les remplir.

qq'un qui peut m'aider j'en ai besoin d'une solution pour l'avancement de mon travail
coordialement

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 avril 2010 à 07:25
Salut,

Il te faut utiliser AJAX : sur le onchange de ton combo, tu effectue une requête asynchrone au serveur en lui envoyant l'élément sélectionné dans ta combo. Celui-ci doit alors traîter la requête en recherchant dans la base de données la ligne correspondante à ta sélection et formater les données récupérées au format XML ou encore mieux : au format JSON, et renvoie les données au navigateur.

Dans la fonction de callback en javascript, tu n'auras plus qu'à lire ses données, les parser et remplir les données de ton formulaire. C'est vraiment le cas d'école archi classique lors de l'utilisation d'AJAX.

Fais une recherche dans les sources du site, tu trouveras des centaines d'exemples.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
nimont010 Messages postés 30 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 16 avril 2010
16 avril 2010 à 13:06
nizar
merci pour la réponse;
j'ai un soucis avec l'envoie de parametre en url;
je viens à récupérer la valeur sélectionné de la liste déroulante et veux la passer en parametre à une page php. Voici mon code javascript(ajax):
<script language="javascript" type="text/javascript">
function recup(){
var cv = document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value


if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("POST","help.php?list=cv", true);
xhr_object.send(null);
if(xhr_object.readyState == 4)
return(xhr_object.responseText);
else return(false);
}
</script>

et voila ma page php:
<?php require_once('../Connections/Nizar.php'); ?>
<?php
$x=$_POST['list'];

$query_Recordset1 = "SELECT * FROM wajdi WHERE BSC=$x";
$Recordset1 = mysql_query($query_Recordset1, $Nizar) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
?>
mais rein ne se passe et je ne sais pas si la page php vien de traiter la requete et si oui comment je recuper le résultat dans mon code javascript pour remplir le reste de mon formulaire qui sont des champs de text.

si qq un peut me guider à surmonter ce probleme. merci à l'avance
cordialemnt
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 avril 2010 à 14:30
Salut,

<script language="javascript" type="text/javascript"> 
function recup(){ 
var cv = document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value 

if(window.XMLHttpRequest) // FIREFOX 
xhr_object = new XMLHttpRequest(); 
else if(window.ActiveXObject) // IE 
xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
else 
return(false); 

xhr_object.onreadystatechange = function(){
if(xhr.readyState  == 4) {
 if(xhr.status  == 200) {
  alert(xhr_object.responseText);
 }
}
}; 

xhr_object.open("POST","help.php?list=" + cv, true); // il faut lui passer le contenu de la variable cv et non la chaîne cv
xhr_object.send(null); 
</script> 

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
nimont010 Messages postés 30 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 16 avril 2010
16 avril 2010 à 15:03
nizar
merci pour la réponse
comme vous avez remarquer que la page "help.php" exécute une requette mysql
comment je peut récupérer le résultat de la requette dans ma page javascript et remplir les champs de mon formuliare qui sont des textfield.
je pense l'idée que c'est d'utliser json mais je ne sais pas comment procéder car je suis débutant

merci à l'avance

cordialement
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 avril 2010 à 15:21
Salut,

Comme je te l'avais dit dans mon premier post, c'est à toi de formater les données récupérées dans ta base de données afin de les rendre facilement exploitable par ton script javascript (JSon est en effet un excellent format pour cà : compact, très facilement interprétable par javascript).

Je te laisse regarder sur le net comment faire du JSon en PHP, mais ca doit vraiment pas être compliqué : quelques echo avec les quelques valeurs de ta base de données, et le tour est joué.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
nimont010 Messages postés 30 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 16 avril 2010
16 avril 2010 à 23:09
nizar
merci pour la réponse;
je me suis perdu dans les idées et les codes sur le net et je n'arrive pas à trouver une solution pour mon pbl.
j'ai corriger mon code comme vous m'avez signalé mais rien n'a changer. et je veux du code comment récupérer le résultat de la requetes sql (fichier php) avec json ou un autre truc pour que je puisse remplir mon formulaire.

je me suis bloqué si qq peut me donné un expl du code source pour faire ce traitement.

merci à l'avance
cordialement
0
Rejoignez-nous