Posez votre question Signaler

Utilisation de XmlHttpRequest

jul - Dernière réponse le 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
Lire la suite 

Utilisation de XmlHttpRequest »

18 réponses
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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??
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
et a votre avis quelle solution je dois employé pour rafraichir mon formulaire san sperdre les infos inclusent dedans??
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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).
kij_82 - 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.

++
Ajouter un commentaire
Réponse
+0
moins plus
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).
kij_82 - 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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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
kij_82 - 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

++
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 !
Ajouter un commentaire
Réponse
+0
moins plus
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??
Ajouter un commentaire
Réponse
+0
moins plus
<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.
Ajouter un commentaire
Ce document intitulé « utilisation de XmlHttpRequest » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook