Salut,
Bon j'ai d�j� eu ce probl�me, je l'ai d�j� r�solu mais l�, depuis hier je n'y parviens pas!
Manip:
Saisie d'un num�ro d'identification dans un champ, une fois rempli, requ�te auto pour v�rifier son existence (ajax).
Si existe, deux listes box sont g�n�r�es de donn�es dans la base correspondantes � cet identifiant (ces deux listes sont d�j� pr�sentes mais vides au d�but de la saisie).
Sinon, deux liste box suppl�mentaires sont ajout�es (non existantes dans le formulaire) afin que l'ont saisisse des crit�res de reconnaissance (manuellement) autre que l'identifiant.
Pb:
Je ne parviens pas � remplir (Ajax) les deux listes ajout�es par la m�thode addRow car elles sont apparement inaccessibles.
Firefox me renvoie "document.forms.frm_produit2.chp_mar_mob has no properties".
J'ai test� avec un simple champ input mais c'est le mm pb, rien n'est consid�r� comme ajout� au formulaire en question.
Maintenant le code que je vous d�pouille pour �claircir:
HTML:
Les lignes seront donc ajout�es au tableau d'id "table_suppl"...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 [...] <form name="frm_produit2" action="truc.php" method="GET" onSubmit="javascript:return(false);"> [...] <tr><td colspan="2"><table id="table_suppl"></table></td></tr>
Contr�le AJAX lorsqu'on saisi l'identifiant dans un input sur la page :
L� vous voyez qu'� la fin de cette fonction de callBack ajax, j'ajoute deux lignes <tr> (par la m�thode AddRow) ayant respectivement pour param�tres de fonction l'id du tableau, l'id de la ligne, le contenu de la cellule 1 (libell� du select), le contenu de la cellule 2 (le select). J'ajoute donc deux lignes, deux select au tableau.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function remplir_FabTypAch(obj) { montre("bloc",1); var t_num = obj.responseXML.getElementsByTagName('donnee'); encours = t_num [0].getAttribute("encours"); trouve = t_num [0].getAttribute("trouve"); inconnu = t_num [0].getAttribute("inconnu"); typ = document.getElementById("xml_typ"); fab = document.getElementById("xml_fab"); liste_fam = document.forms.frm_produit2.chp_fam_sym; liste_sym = document.forms.frm_produit2.chp_sym; if (inconnu == 1) { lib1 = "Marque : "; lib2 = "Modèle : "; val1 = "<select name='chp_mar_mob' style='width:150px;' size='1' class='selectone_std' onFocus='chg_focus(this);' onBlur='chg_focus(this);' onchange='javascript:charge_symptome(this.value);' onclick='javascript:document.forms.frm_produit2.chp_mar.value=this.value';></select>"; val2 = "<select name='chp_mod_mob' style='width:150px;' size='1' class='selectone_std' onFocus='chg_focus(this);' onBlur='chg_focus(this);' onchange='javascript:document.forms.frm_produit2.chp_mod.value=this.value;'></select>"; AddRow("table_suppl","ligne1",lib1,val1); AddRow("table_suppl","ligne2",lib2,val2); charge_mob("marque"); }
Ensuite j'appelle la fonction charge_mob("marque") qui va charger dans la premi�re liste cr��e, une liste de marques.
fonction charge_mob() avec son callback:
L'ERREUR :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function charge_mob(typ) { var XHR = new XHRConnection(); XHR.appendData("typ", typ); XHR.sendAndLoad("xml/charge_mob.php", "GET", back_charge_mob); } function back_charge_mob(obj) { var liste_mar = document.forms.frm_produit2.chp_mar_mob; var t_num= obj.responseXML.getElementsByTagName('donnee'); if (t_num.length > 0) { charge_aspect(); num= t_num[0]; var t_mar = obj.responseXML.getElementsByTagName('marque'); liste_mar.options.length = 0; liste_mar.options[liste_mar.options.length] = new Option ("", ""); for (var i = 0; i < t_mar.length; i++) { marque = t_mar[i]; liste_mar.options[liste_mar.options.length] = new Option (marque.getAttribute("nom"), marque.getAttribute("id")); if (marque.getAttribute("sel") == "O") liste_mar.selectedIndex = liste_mar.options.length - 1; } } }
Me renvoie une erreur car chp_mar_mob (nom du select) n'est a priori pas accessible. Pourtant lorque je fais une selection manuelle sur firefox et que je regarde le code source, les deux select sont bien pr�sents et parfaitement configur�s. De plus j'utilise la mm formulation dans une autre appli et �a fonctionne.... -_-'
Code : S�lectionner tout - Visualiser dans une fen�tre � part var liste_mar = document.forms.frm_produit2.chp_mar_mob;
JE NE PIGE PAS DU TOUT!!
D'autant que �a marche sur une autre appli et par le mm syst�me!
J'ai eu beau reprendre tout le code, c'est incompr�hensible.
Merci de me trouver la ptite boulette, je sature de chercher...
Partager