Ajax /php problème de POST


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Ajax /php problème de POST

Message le Mer Déc 27, 2006 13:02

J'ai un problème assez compliqué à expliquer. Je vais faire le plus simple possible.

J'ai actuellement une page php assez simple avec 3 bouton input dans un form:

Code: Tout sélectionner
<form action="?page=deplacement" method="post">
<input name="south" type="image" title="Aller en bas" class="no_bordure" onclick="go()" src="images/carte/bouton-bas.gif"/>
</form>


En fait mon but, c'est lorsque l'on clique sur un bouton, faudrait ne pas recharger la page entièrement, mais juste un contenu.

Donc pour cela j'ai mi le contenu de ma page dans un calque:

Code: Tout sélectionner
<div id="carte">

<form action="?page=deplacement" method="post">
<input name="south" type="image" title="Aller en bas" class="no_bordure" onclick="go(1)" src="images/carte/bouton-bas.gif"/>
</form>

</div>


et un peu de javascript dans le <head>:
Code: Tout sélectionner
function getXhr(){
               var xhr = null;
   if(window.XMLHttpRequest) // Firefox et autres
      xhr = new XMLHttpRequest();
   else if(window.ActiveXObject){ // Internet Explorer
      try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
         }
   }
   else { // XMLHttpRequest non supporté par le navigateur
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest... Le site disfonctionnera.");
      xhr = false;
   }
               return xhr;
}
function go(){
   var xhr = getXhr();
   xhr.onreadystatechange = function(){
      // Tout est ok ?...
      if(xhr.readyState == 4 && xhr.status == 200){
         leselect = xhr.responseText;
         document.getElementById('carte').innerHTML = leselect;
      }
   }

[b]Le problème: [/b]
   xhr.open("POST","?page=deplacement",true);
   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
   xhr.send(null);
}


Le problème: En fait comme je vous l'ai expliqué plus haut, jj'aimerai que lorsque l'on clique sur un bouton input, il y es bien le formulaire qui joue son jeu, mais sans recharger la page.

Donc je sais pas comment m'y prendre avec cette ligne dans le javascript:

xhr.open("POST","?page=deplacement",true); dans le cas actuel ca m'affiche dans la div la page du site en entier.


Jeviensderio
WRInaute passionné
WRInaute passionné
 
Messages: 1340
Inscription: 29 Sep 2006

Message le Mer Déc 27, 2006 15:36

Ce qu'il me semble c'est que la fonction Ajax affiche la page courante avec un paramère. C'est normal qu'elle soit rechargée en entier.
Il faudrait peut-être créer un fichier XML ou JSON pour avoir des données à intégrer à la page.
C'est en tout cas ce que je fais habituellement.


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Message le Mer Déc 27, 2006 16:43

tu peux m'expliquer comment tu fais?

nico2006
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 1 Nov 2006

Message le Mer Déc 27, 2006 18:08

salut;
remplace
<input name="south" type="image" title="Aller en bas" class="no_bordure" onclick="go()" src="images/carte/bouton-bas.gif"/>

par
<img title="Aller en bas" class="no_bordure" onclick="go()" src="images/carte/bouton-bas.gif"/>

et tu n'aura plus de soumission donc plus de rechargement de la page


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Message le Mer Déc 27, 2006 20:56

Oui mais j'ai besoin du name, il me sert pour les requetes après avoir actionné le bouton


Jeviensderio
WRInaute passionné
WRInaute passionné
 
Messages: 1340
Inscription: 29 Sep 2006

Message le Lun Jan 01, 2007 12:18

La fonction POST a pour but d'envoyer des données au serveur. Le paramètre send() contient les données en question.

Si j'ai bien compris le but de l'exemple, il faut utiliser GET, et l'appel de la méthode setRequestHeader devient inutile.

Cela devrait marcher.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités