Pour aller droit au but (je détaille pour faire le rapprochement avec le code qui suit) : j'ai une série de x catalogues externes (référencés avec un code CLITD et un libellé LIITD, ex : code = IC, libellé = chaine info client) enregistrés dans une table MySql (T2G72). Je dois les afficher dans une liste déroulante (type_catal_ext), avec le code dans le value du select ($id_72) et le libelle dans le texte ($nom_72).
Pour chaque catalogue, j'ai une et une seule référence. Dans l'appli que je reprend, j'ai un tableau typdoc_catext associé, sur 2 dimensions, qui contient le code du catalogue et sa référence, ex typdoc_catext [0] = code (soit IC), typdoc_catext[1] = Reference001.
Je voudrais qu'à coté de ma liste déroulante, il y ait une zone saisissable (ref_entree) qui affiche la référence du catalogue externe du libellé selectionné dans la liste, et surtout que toute modif soit prise en compte et répercutée dans la tableau...
j'ai donc chargé mon select comme suit :
Code : Tout sélectionner
echo "<td><select name=\"type_catal_ext\" onchange=\"javascript:afficheLib()\">";
$query = "select CLITD, LIITD from T2G72 order by LIITD asc";
$result = mysql_query($query);
$i = 0;
while($row = mysql_fetch_row($result)){
$id_72 = $row[0];
$nom_72 = $row[1];
echo "<option value=".$typdoc_catext[$i][1].">".$nom_72;
$i = $i+1;
}
echo "</select>";
Code : Tout sélectionner
function afficheLib(){
rang = document.forms[0].elements["type_catal_ext"].options[document.forms[0].elements["type_catal_ext"].selectedIndex].index;
document.forms[0].ref_entree.value = document.forms[0].elements["type_catal_ext"].options[rang].value;
}
Là où ça se corse, c'est que je voudrais répercuter chaque saisie dans le tableau typdoc_catext...
J'ai donc codé la zone de saisie comme suit :
Code : Tout sélectionner
echo "<td id=\"page_titre3\" colspan=\"2\">\t\tReference"."<input type=\"text\" name=\"ref_entree\" onchange=\"javascript:moveLib();\">";
Code : Tout sélectionner
function moveLib(){
document.forms[0].ref_rang.value = rang;
alert("rang."+rang+".");
alert("libelle."+document.forms[0].ref_entree.value+".");
}
Mais je n'arrive pas à coder proprement pour forcer le tableau typdoc_catext avec la valeur saise : si j'utilise
typdoc_catext[rang][1]=libelle
à la suite du moveLib dans le onchange de ref_entree, il me dit que ce tableau a la valeur null ou n'est pas un objet...
j'ai essayé avec des " ", des ' ', des {} et des [], avec des document.forms[0].elements[.... je l'ai déclaré en hidden .... impossible de manipuler ce tableau dans le onchange...
Comme j'ai le nez dedans et que je n'ai pas de recul à cause de mon inexpérience, je n'avance pas...
je fais appel à vos bonnes volontés, si qlq'un a une suggestion