Bonjour à tous,

j'ai une application Java qui gère des tables Oracle.
Mon appli contient des JSP dans lesquelles s'effectue l'affichage des tables mais aussi l'action à des actions (modifier, supprimer, ajouter, etc...)

Pour utiliser chacune de ces fonctions j'ai la possibilité de sélectionner les lignes concernées (supprimer, modifier). Et dans le cas de la modif, je veux effectuer un controle, à savoir qu'une seule ligne soit choisie avant de rediriger vers la servlet de modification. Jusque là, aucun problème!

Mais je n'arrive pas à rediriger vers la servlet...
Je reçois bien les infos de la ligne que je sélectionne (je le vois dans le log de mon serveur + alert()), je vois aussi que les données transit vers la page. Mais celle ci ne s'affiche pas.

De plus, j'ai essayé 2 choses.
1) associer la fonction JS à une image (souhaité)
2) associer la fonction JS à un bouton (pas terrible...)

Avec l'image, je reste sur la page appelante.
Avec le bouton, j'accède à une page blanche mais à la bonne URL (je gère parfaitement les servlets, elles fonctionnent au top, c'est certain).

Pour mieux me faire comprendre voici les éléments :

la JSP :

Code JSP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
		<input type="image" src="../img/update.bmp" alt="update" value="submit"	onClick="checkUpdate('modifFormBankParameters');"> 
		<input type="button" value="Modif"  onClick="checkUpdate('modifFormBankParameters')"/>

la fonction JS :

Code JAVASCRIPT : 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
 
function checkUpdate(pAction) {
	// les lignes de ma tables précédées d'une checkbox
	var theForm = document.forms['mainForm'].elements['check'];
	var form = document.createElement("form");
	var i = 0;
	var j = 0;
	var val;
 
// parcours des checkbox pour compter le nombre de sélections
	for(i=0; i<theForm.length; i++){
		if(theForm[i].checked){
			j++;
récupérer la valeur de la ligne
			val = theForm[i].value;
		}
	}
	// affichage du nombre de sélection + valeur : ça marche au top
	alert(j);
	alert(val);
 
// si 0 sélection, ne rien faire
	if(j == 0){
	}
// plusieurs, pas bon
	else if(j > 1){
		alert("Select just 1 please");
	}
// sinon on fait le redirection vers la servlet entrée en paramètres
	else{
		document.body.appendChild(form);
		form.method="POST";
		form.action=pAction;
		var hiddenField = document.createElement("input");
		hiddenField.name="formidable";
		hiddenField.type="hidden";
		hiddenField.value=val;
		form.appendChild(hiddenField);
		form.submit();
	}
 
}


la servlet :

Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
String req = request.getParameter("formidable");
// affichage de la valeur envoyée par la form de la fonction : ça marche au top
System.out.println(reqTemp);
 
// écrire sur la page lue par le navigateur
PrintWriter out = response.getWriter() ;
out.write("<p>"+req+"</p>");


Merci de votre aide, je pète un plomb depuis des heures, je sais que maintenant je n'ai meme plus le bon recul pour réfléchir

Bonne soirée, Pierre