Bonjour à tous.
Je débarque un peu dans l'Univers JSP/JS (oui je sais les 2 sont différents, m'enfin l'un n'empêche pas l'autre) et je pense que je vais poser une question con... et je m'en excuse.
Au début de ma page JSP je crée une variable JS (avec un out.println("var dataSources = new Array();"; ) que je rempli de suite après, et un peu plus bas dans le code j'ai une fonction JS dans laquelle je voudrais utiliser le contenu de mon tableau. Manque de bol il est plus accessible, genre l'objet a disparu.
Est-ce que quelqu'un saurait m'éclairer le chemin de la raison (dit comme ça...).
Voici le code dont je parle (tiré directement du source HTML de ma page affichée pour éviter les mauvaises surprises)
Outre le fait que je ne comprend pas la ligne window.parent.nav.location.href = window.parent.nav.location; (je n'ai pas cherché sa signification, mais je doute qu'elle soit à l'origine de mon soucis...) mon problème viens du fait que sur mon alert('Case 3...') si j'ai le dataSources[0] je n'ai pas l'alert. Il me faut supprimer ce code pour avoir l'affichage de mon alert.... auquel cas je m'arrête au niveau de la boucle. Probablement quand je cherche à récupérer le nombre d'élément de mon dataSources. Quelqu'un voit-il mon problème ? Serait-ce du au fait le script ou je déclare dataSources n'est pas explicitement JavaScript ? -si je le change et que j'ajoute l'attribut JavaScript... plus rien ne s'affiche.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 <html> <head> <title>Titre</title> <script language="JavaScript"> <!-- window.parent.nav.location.href = window.parent.nav.location; //--></script> <script language="JavaScript"><!-- parent.location.href == self.location.href ? top.window.location.href = '../admin_tools.htm' : ""; //--></script> <script><!-- var dataSources = new Array(); var options = new Array(); dataSources[0] = 401; options[0] = null; var dataType401 = new Array(); dataType401[0] = 105; dataType401[1] = 104; dataType401[2] = 103; dataType401[3] = 102; dataType401[4] = 101; dataType401[5] = 10621; dataType401[6] = 10643; dataType401[7] = 106; dataSources[1] = 462; options[1] = null; ... dataTypeIds[15] = '10481'; var selectedDataType = ''; var selectedDataType1 = ''; //-->--></script> <script language="JavaScript"> function DataSourceSelectionChange(obj){ var the_select = obj; var flag = false; var selectedDS = new Array(); var dataTypeToDisplay = new Array(); var selectedDataTypeIndex = new Array(); var count = 0; var options =new String(); alert("Au moins on y passe..."+the_select.value); if(the_select.value == 0){ //The first element of the drop down list has been selected. No data type to display alert("Case 1"); this.document.forms[0].dataType.length = 0; var doc = obj.ownerDocument; var opt = doc.createElement('OPTION'); opt.value = '0'; opt.text = 'Please select a Data Source'; this.document.forms[0].dataType.options.add(opt, 0); obj.options[0].selected = true; }else{ //A "valid" data source has been selected. Retrieve and display the corresponding data type list var arr = 'dataType'+the_select.value; var dsID = new String(the_select.value); alert('Case 4'); var test = new Array("13", "8", "bonjour"); alert('Case 3 -> '+test[0]+' DS[0] '+dataSources[0]); var option = new String(); for(var dsLength=0; dsLength<dataSources.length; dsLength++){ alert('dsID : '+dsID+' dataSources['+dsLength+'] => '+ dataSources[dsLength]); if(dataSources[dsLength] != null){ if(dataSources[dsLength] == dsID){ option = options[dsLength]; break; } } } alert('Case 2 -> '+arr+' - '+option);
Partager