Ajax /php problème de POST

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


sff
WRInaute impliqué
WRInaute impliqué
 
Messages: 293
Inscription: Mer Fév 02, 2005 23:04

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 accro
WRInaute accro
 
Messages: 1340
Inscription: Ven Sep 29, 2006 12:50

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 impliqué
WRInaute impliqué
 
Messages: 293
Inscription: Mer Fév 02, 2005 23:04

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

tu peux m'expliquer comment tu fais?

nico2006
Nouveau WRInaute
 
Messages: 21
Inscription: Mer Nov 01, 2006 17:58

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 impliqué
WRInaute impliqué
 
Messages: 293
Inscription: Mer Fév 02, 2005 23:04

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 accro
WRInaute accro
 
Messages: 1340
Inscription: Ven Sep 29, 2006 12:50

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.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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