Utilisation de XmlHttpRequest

Fermé
jul - 19 mai 2005 à 16:34
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 20 mai 2005 à 17:15
Bonjour,

j'aurai besoin d'aide.

Je m'explique: j'ai un formulaire qui grace a un lien ouvre une popup.

A la fermeture de celle ci le formulaire doit se reactualiser pour prendre en compte le changmeent. Seulelment je veux conserver les données déja taper dans le formulaire.


J'ai entendu parler de la fonction XmlHttpRequest mais vu kje débute j'ai pas tout compris.

Est ce que cette méthode répondrait a mon probleme??? peut on l'utiliser sous konqueror??

Et pouvais vous m'expliquer comment s'en servir...

Ou une autre méthode pour répondre a mon probleme

(tout est codé en php et jpe integrer du javascript)

merci d'avance

15 réponses

sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 144
19 mai 2005 à 16:43
Grace à sebsauvage, je pourrais "commencer" à te repondre!
regarde les exemples du site suivant:

http://www.toutjavascript.com/savoir/xmlhttprequest.php3

puis si queque chose est interessant, on continura la discussion.
0
Je l'ai déja regarder ce truc et fraznchement jcapte pas grand chose.

Mais tu penses que c'est la meilleure solution a mon probleme ou ya un truc plus simple a faire??
0
sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 144
19 mai 2005 à 16:48
peut etre que ça pourrais t'aider, mais il faut que tu sache, que le PHP (ou autre langage coté serveur) est toujours essentiel pour cette solution
le pb (bon j'ai pas encore tout capter moi même) est que tu utilise deux fenetre (une principale, l'autre popup) alors que dans tous les exemples XmlHttpRequest le resultat revient à la meme page
mais je vais voir si c'est interessant pour toi
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 mai 2005 à 16:54
Uitliser les HttpRequest n'est aps obligatoire pour ce que tu as à faire. Moi perso je les utilise uniquement (pour le moment) pour effectuer des controle, des modifications, et des réactualisation de ma page (objet JS sur ma page). Mais c'est pas sur que ca aille pour toi.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
et a votre avis quelle solution je dois employé pour rafraichir mon formulaire san sperdre les infos inclusent dedans??
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
20 mai 2005 à 09:46
Est ce que cette méthode répondrait a mon probleme???

C'est pas nécessaire.
ça peut très bien se faire sans.


Pour le faire sans:
Il suffit de récupérer les infos reçues lorsque l'utilisateur presse sur "Submit", puis de pre-remplir le formulaire avec les valeurs entrées par l'utilisateur.

Certaines autres techno (comme ASP.Net) se chargent de re-remplir automatiquement les champs, mais en php il faudra le programmer.
0
Mais dans mon cas l'utilisateur ne presse pas sur submit.

Il remplit une partie du formulaire quand il lui manque une info il clique sur un lien qui lui permet de la rentrer.Puis il ferme le lien et quand il retourne sur le formulaire celui ci se rafraichi pour integrer la nouvelle valeur en gardant ce qui était déja taper.

Il n'y a donc pas de submit (juste dans ma popup).
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 mai 2005 à 10:12
Une solution possible mais longue à mettre en place et qui demande du php / javascript :
quand tu es dans ta popup : tu peux acceder à ta fenetre parent (celle du forlmulaire), et donc tu fais une fonction Js qui permet de faire une redirection dans la fenetre parent de l'url de celle-ci mais avec des paramètres en plus passé en GET ou POST comme tu le souhaite.

Pour cela, quand tu ouvre ta popup, tu lui passe l'adresse de ton script qui s'ouvre dans la popup avec les paramètres remplis dans le formulaire. Dans le script de la popup tu récupère les arguments recut en paramètre (GET ou POST). Tu les inclus en 'hidden' dans ton form de la popup de manière à ce qu'il soit passé losque l'utilisateur clique sur le submit de la popup. Le submit de la popup va faire appel à une fonction JS qui s'occupe de faire une redirection dans la fenetre parente et de fermer la popup.

Voilà, c'est une solution réalisable mais longue... je sais qu'on peut effectuer une redirection dans la fenetre parent de la popup depuis cette dernière mais la syntaxe ? je ne sais pas la syntaxe, il faudra donc te renseignerla dessus.

++
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
20 mai 2005 à 10:26
Une popup s'affiche, puis en fermant cette popup ça rempli un champ de la page principale, c'est ça ?

Il n'y a pas besoin de XmlHttpRequest pour ça.

ça peut se faire en javascript, dans la popup (la popup peut accéder et modifier le menu de la page parente).
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 mai 2005 à 10:29
Oui, c'est ce que je lui disais, mais perso je ne sais pas vraiment quelle sont les syntaxes pour acceder à la fenetre parent et faire une modif ou redirection dans celle-ci, tu peux peut etre nous aiguiller la dessus ?
0
Oui mais en fait je pense que c plus fastidieu de faire ca car ma page qui s'ouvre peut justement s'ouvrir de plusieurs formulaire il me fo donc un code généraliste.

Et j utilise la popup surtout pour completer des listes deroulantes ou des cases a cocher....

Donc voila je sais pas si ca vous avance plus
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 mai 2005 à 11:02
justement non, tu peux tres bien passer à ta popup en paramètre quand tu l'ouvre, l'url de la page appellante (comme ca tu sais sur quelle page faire la redirection), par contre en ce qui conerne les paramètre, c'est vrai que c'est un plus chaud la, mais tu peux tres bien les passer dans l'url directement quand tu passe en paramètre à ta popup, c'est à dire que ton url ressemblerait à ca :
$url = "mapageàrapeller.php?val=".$val."&text=".$text

Et c'est cette url que tu passe en param à ta popup

Dans la popup, tu la modifie en ajoutant la valeur qu'est sencé selectionner l'utilisateur dans ta popup :
$url = $_POST['url'];
$url .="&data=".$data; // Ou d'une autre facon (JS par exemple)


Puis tu fais le changement dans la fenetre appellante de la popup avec une redirection sur l'url que tu obtient, et tu ferme la popup.
C'est pas plus fastidieux que ca finalement. Reste à garder les mêmes dénomminations de tes paramètres dans toutes tes pages si le script de la popup est appellé depuis plusieurs formulaire

++
0
Quelqu'un ne pourrai pas plutot me donner un code sur un exemple simple:

un <input type=text name=nom value=$val>.$val.

de conservation de la valeur écrite dans la zone de texte après rechargement.

Parcke avec le surl et tout le tralalla je m'en sort pas...
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
20 mai 2005 à 15:48
Si c'est une popup qui renseigne un des champs de la page principale, il n'y pas besoin de recharger la page.

Si tu as un champ dans ton formulaire principal comme:
<input type="text" name="toto" /> 


Il suffit d'ouvrir ta popup:
window.open('mapopup.php', etc.)


puis dans le close (ou le submit) de ta popup faire:
opener.document.getElementById('toto').value = 'blablabla'


La valeur 'blablabla' sera écrite dans le champ toto de ton formulaire principal.
0
ca marche aussi pour les liste deroulante et les checkbox???

Et ca marche dans mon cas ou le formulaire 1 n'est pas fermer a l'ouverture de la popup
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
20 mai 2005 à 16:07
ca marche aussi pour les liste deroulante et les checkbox???

ça devrait !

En principe tous les éléments de la page HTML sont accessible en Javascript par le DOM.
On peut donc manipuler toute la page (et même modifier son contenu !).


Et ca marche dans mon cas ou le formulaire 1 n'est pas fermer a l'ouverture de la popup

ça marche chez moi, en tous cas !
0
j'ai un truc de fo kan j'écri ca parcke rien ne s'affiche...
<script language=javascript>
function ajout(){
opener.document.getElementById('type').value="truc2";
alert('ahahahaha');
}
</script>
</head>
<body onUnLoad=ajout()>


fo préciser que mes pages sont en .cgi mais je pense pas que ca change grand chose.
et dernière question si par exemple j'ai dans mon champs liste déroulante value='$var[0]'

je fais comment pour l'atteindre en javascript??
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
20 mai 2005 à 17:15
<body onUnLoad=ajout()>


Il faut faire:
<body onUnLoad="javascript:ajout()">

si je ne me trompe pas.

Mais je ne sais pas si le onUnLoad marche sur le body.
J'aurais plutôt mis à l'appel à ajout sur un bouton.
0