8796 sujets

Développement web côté serveur, CMS

Bonjour,

Je dois développer une appli avec interface web (jsp). Toutes les pages sont des formulaires de saisies.

Il y a donc une relation client serveur à chaque validation du formulaire, mais pas seulement.

Par exemple, le prix doit se calculer directement en fonction de ce que rentre l'utilisateur.

En gros, c'est un affranchissement postal qui ce calcul en fonction du poids, du pays de destination, de mode d'acheminement, du taux, de l'accusé de réception, et pas mal de truc.
Tout ça pour dire qu'en fonction de ce qui est rentré dans ces champs, le champs affranchissement est recalculé.

La solution envisagée par mon entreprise est de resoummettre à chaque fois le formulaire, mais on se trouverait avec 10 soumissions du formulaire avant la soumission finale.

J'ai d'abord pensait tout rappatrié coté client dans tableau javascript, mais certaines tables (celle avec les tarifs par exemple) contient plus de 10 000 enregistrement...

Sachant que les utilisateurs finaux auront des connexion inférieures à 56k, c'est pas l'idéal.

Bon maintenant que j'ai exposé mon problème je vais exposé la solution à laquelle j'ai pensé : L'AJAX et son fameux Xmlhttprequest.

Alors première question, est-ce que ça fonctionne avec du java. Deuxième question, si oui, comment on le met en place ?
Et enfin, j'ai cherché tout hier soir une fonction simple pour mettre en place l'ajax avec la classe XHRconnection par exemple, mais elle est vraiment écrite pour un seul cas.

Donc, si quelqu'un a déjà essayé d'utiliser cette méthode en java, ou si quelq'un est expert de l'ajax (hors foot s'il vous plait, et hors produit d'entretien), je serais ravis d'avoir quelques indications.
Modifié par trigun (25 Nov 2005 - 16:42)
Administrateur
c'est relativement simple à mettre en place, quel que soit le langage de script interprété côté serveur.
il y a aussi un article à ce sujet sur openweb.
Merci, j'avais déjà reperé ces 2 sites hier soir mais je préférais avoir l'avis clair des usagers de ce forum.

Je pense que mon erreur viens du fait de ne pas générer de code xml (forcément ^^).

Autres petites question, est-ce que ça vous parait utile pour le cas que je décris ?
Moi personnellement j'aurai développer une interface java et pas web, mais ce sont les contraintes du cahier des charges.
Bon, finalement, je reedite mon sujet.

J'ai réussi à envoyer et récupérer des valeurs, le problèmes maintenant vient de javascript.

J'ai cette fonction :


function loadData(champs,servlet) {
     // Création de l'objet
     
    var XHR = new XHRConnection();

	/*for(var i=0; i < champs.length;i++)
	{
		XHR.appendData(champs[ i], document.getElementById(champs[ i]).value);
	}*/
     
    XHR.appendData('_POIDS', document.getElementById('_POIDS').value);
     XHR.appendData('ACHEMT', document.getElementById('ACHEMT').value);
     XHR.appendData('CODUPU', document.getElementById('CODUPU').value);
     
     // On soumet la requête
     // Signification des paramètres:               
     //      + On indique à l'objet qu'il faut appeler le fichier search.php
     //      + On utilise la méthode POST, adaptée l'envoi d'information
     //      + On indique quelle fonction appeler lorsque l'opération a été effectuée
     //"/optWeb/SrvAffrTraitement"
     XHR.sendAndLoad(servlet, "POST", afficherResultats);
}


Ca ça marche donc, mais le problème, c'est que c'est limité à un cas. Et j'ai besoin de passer des paramètres différents suivant le cas.
J'ai donc rajouter un paramètre "champs" qui sera constitué des différents id des champs dont je veux récupérer la valeur.
ja lance donc ma fonction par : loadData(new Array('champs1','champs2','champs3'),'maservlet')

Et j'aimerai que ma fonction deviennne :


function loadData(champs,servlet) {
     // Création de l'objet
     
    var XHR = new XHRConnection();

	for(var i=0; i < champs.length;i++)
	{
		XHR.appendData(champs[ i], document.getElementById(champs[ i]).value);
	}
     
     // On soumet la requête
     // Signification des paramètres:               
     //      + On indique à l'objet qu'il faut appeler le fichier search.php
     //      + On utilise la méthode POST, adaptée l'envoi d'information
     //      + On indique quelle fonction appeler lorsque l'opération a été effectuée
     //"/optWeb/SrvAffrTraitement"
     XHR.sendAndLoad(servlet, "POST", afficherResultats);
}


J'ai une erreur javascript qui m'affiche "objet requis" au niveau de XHR.appendData(champs[ i], document.getElementById(champs[ i]).value);

J'ai toujours pas compris pourquoi, j'ai tout essayé, j'ai bien vérifié que mon tableau contenait les valeurs en faisant des alert.

Mais rien y fait.
Modifié par trigun (26 Nov 2005 - 11:38)
Administrateur
Bonjour,

j'ai enlevé les CAPS du titre ...

La mise en forme italique dans le dernier post vient de l'utilisation de tableaux d'indice i comme tableau[ i], voir le Sujet d'Annonce à ce propos (si l'on veut un affichage correct, il faut éditer, remplacer i par espace-i ou plutôt ii, r, X, etc et enlever les balises [ /i] qui ont été rajoutées entre temps par le parseur du Forum pour n'avoir aucune balise restée ouverte ...)
Envoi une chaine de caractère composée des valeurs séparés par une virgule.

Coté serveur tu auras sans doute une fonction pour transformer ta liste en tableau Smiley smile
Modifié par Thanh (26 Nov 2005 - 15:28)
Merci, than, pas bête comme solution.
Je pense que dans mon cas ça vient d'un problème IE car j'ai fait des test chez moi sur linux, et j'ai pas rencontré ce problème sous firefox, konqueror ou epiphany.

Au moins coté serveur j'aurai pas de problème de navigateur ^^.
Administrateur
(tu n'es pas obligé de te servir de xml, même si l'intitulé de la fonction le suggère)
Modifié par dew (28 Nov 2005 - 14:43)
Oui je sais, d'ailleur je ne m'en sers pas puisque ma requete ne renvoit qu'une valeur.
J'utilise un responseText. Ce qui me renvoi tout le contenu du texte généré.