[AJAX] Cr�ation obj/form non accessibles
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:
Code:
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> |
Les lignes seront donc ajout�es au tableau d'id "table_suppl"...
Contr�le AJAX lorsqu'on saisi l'identifiant dans un input sur la page :
Code:
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");
} |
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.
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:
Code:
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;
}
}
} |
L'ERREUR :
Code:
var liste_mar = document.forms.frm_produit2.chp_mar_mob;
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.... -_-'
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...