Ne pas recharger les page avec Ajax, problème

sff
Invité n'ayant pas de compte PHPfrance

21 août 2006, 00:26

J'ai vu quelques exemple sur le web utilisant getHTTPObject() pour des formulaire ou d'autres choses. Cela permet visiblement d'exécuter les requetes à l'intérieux de la page sans les recharger.

Moi je cherche à faire en sorte que lorsque l'on clique sur un lien, la page nese recharge pas, mais affiche bien le contenu demandé.


J'ai ceci sur mon site:

Code : Tout sélectionner

function ajax_request(methode, url, arguments,type, fonction) { var http_request = false; /** http_request est la variable qui contient notre objet "ajax"*/ var data=null; /** data est la variable qui contient les arguments*/ var taille=0; /** taille est la variable qui la taille de data*/ if(methode != "GET") { if(methode != "POST") { alert("Requete Ajax : methode incorrecte -> " + methode); return false; } } if(!arguments) { arguments=''; } if(type != "responseText") { if(type != "responseXML") { alert("Requete Ajax : type incorrecte -> " + type); return false; } } if(!url) { alert("Requete Ajax : url incorrecte"); return false; } if(!fonction) { alert("Requete Ajax : fonction incorrecte"); return false; }else{ fonction=fonction+"(http_request."+type+")"; } if(methode == "GET") { url+="?"+arguments; } else { data=arguments; taille=data.length; } if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else { if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } } if (!http_request) { alert('Cannot create an XMLHTTP instance'); return false; } else { http_request.onreadystatechange = function() { if (http_request.readyState == 4) { if (http_request.status == 200) { eval(fonction); return true; } else { alert("Error no."+http_request.status+"\nAn error occur while receiving data"); return false; } } } http_request.open(methode, url ,true); http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); http_request.setRequestHeader("Content-length", taille); http_request.setRequestHeader("Cache-Control", "no-cache"); http_request.setRequestHeader("Connection", "close"); http_request.send(data); } } function principal(reponse) { document.getElementById("contenu").innerHTML = reponse; }
Et ceci pour le lien:

Code : Tout sélectionner

echo '<img src="images/login/puce2.gif"/>&nbsp;<a href="#" onclick="javascript:ajax_request(\'POST\', \'?page=sondage\', \'ajax=true&Monpost1=\'+ document.getElementById(\'bouton\').value,\'responseText\',\'principal\');" ><span class="marron1">Créer un personnage</span></a><br />';
Mais si vous regardez ici, lorsque l'on clique sur créer un personnage on a la meme page s'intégrer sur la page actuel, ce qui est pas normal. Je ne trouve pas le problème

Demo: http://rpgillusion.franceserv.com/game/

Eléphant du PHP | 353 Messages

21 août 2006, 08:57

c'est normale , tu demandes d'insèrer index.php?page=sondage

echo '<img src="images/login/puce2.gif"/>&nbsp;<a href="#" onclick="javascript:ajax_request(\'POST\', \'?page=sondage\', \'ajax=true&Monpost1=\'+ document.getElementById(\'bouton\').value,\'responseText\',\'principal\');" ><span class="marron1">Créer un personnage</span></a><br />';

si ta page est sondage.php , tu dois donc mettre =>

Code : Tout sélectionner

echo '<img src="images/login/puce2.gif"/>&nbsp;<a href="#" onclick="javascript:ajax_request(\'POST\', \'sondage.php\', \'ajax=true&Monpost1=\'+ document.getElementById(\'bouton\').value,\'responseText\',\'principal\');" ><span class="marron1">Créer un personnage</span></a><br />';
Vérifier aussi l'id du div de destination qui m'a l'air pas top correctement !

sff
Invité n'ayant pas de compte PHPfrance

21 août 2006, 13:09

Non ca peut pas etre sondage.php vu que cette page n'existe pas. En fait en faisant ?page=sondage j'inclus la fonction sondage de la page login.

Voila le code :

Code : Tout sélectionner

if ($loginOK == false) { if(isset($_GET['page'])){ if ($_GET["page"] == "verify") {include('users.php'); verify(); } if ($_GET["page"] == "sondage") {include('login.php'); sondage($controlrow);} }else{ echo '<img src="images/login/puce2.gif"/>&nbsp;<a href="#" onclick="javascript:ajax_request(\'POST\', \'?page=sondage\', \'ajax=true&Monpost1=\'+ document.getElementById(\'bouton\').value,\'responseText\',\'principal\');" ><span class="marron1">Créer un personnage</span></a><br />'; } }

Et la fonction sondage() dan login.php

Code : Tout sélectionner

<?php function sondage($controlrow) { $page = '<b>'.$controlrow['copyright'].'</b>ttttttt'; echo $page; } ?>
Donc je sais pas ce que je dois faire pour éviter ce problème