Lien vers un include sans recharger la page avec Ajax

Résolu
cs_smoke Messages postés 28 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 18 mai 2011 - 16 août 2006 à 22:06
stealon Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 20 mai 2018 - 5 mars 2012 à 01:39
Salut tt le monde ;)

J'aimerais savoir si quelqu'un aurait une info pour recharger uniquement une partie d'une page avec Ajax.


Je m'explique:

Je crées une page nommée index avec 3 tableaux, dans lesquels je mets:


tableau 1: include en php du header contenant du flash

tableau 2: include en php du corps du site

tableau 3: include en php du footer.


le but est de pouvoir cliquer sur un lien dans le header et de faire
afficher la page dans le tableau 2 sans recharger toute la page index,
afin de ne pas relancer le flash.


J'ai tout testé, sans vouloir tomber dans les frames, iframes, etc..

Quelqu'un aurait une info?

6 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 août 2006 à 22:44
Salut

Regardes sur le site
http://fr.wikibooks.org/wiki/Programmation_PHP/Ajax/Sommaire

L'exemple parait clair.
3
cs_smoke Messages postés 28 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 18 mai 2011
17 août 2006 à 00:00
Merci pour l'info nhervagault, je vais ausculter ca..


Pourtant j'ai cherché comme un sauvage sur le net avant de poser la
question.. faut croire que j'ai pas mis les bons mots clés.. lol
3
stealon Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 20 mai 2018
11 févr. 2012 à 23:59
Moi j'ai un problème, j'ai un formulaire avec deux champs de type text et je souhaite récupérer les valeurs insérées par l'utilisateur pour faire une requête sql et afficher le résultat ailleurs dans un div de la même page tout ceci sans la recharger. Merci à tous.
0
stealon Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 20 mai 2018
12 févr. 2012 à 01:04
Pour éviter les pertes de temps voici avec le code ce que je voudrai faire:



Votre nom:




Votre prénom:




Votre statut:


Sélectionner
Nouveau
Ancien


Valider





/*c'est ici que je m'embourbe. je sais que le javascript s'exécute coté client j'exprime juste le résultat que je veux */
print'';
print'var $nom = document.getElementById(\"nom\").value;';
print'var $prenom = document.getElementById(\"prenom\").value;';
print'var $statut = document.getElementById(\"statut\").options[document.getElementById(\"statut\").selectedIndex].value;';
print'';
if(!empty($nom) AND !empty($prenom) AND $statut != 'sélectionner')
{
if($statut == 'ancien')
{$req mysql_query(\"SELECT Points FROM Utilisateurs WHERE Nom \"$nom\" AND Prenom = \"$prenom\"\") or die(mysql_error());
while($result = mysql_fetch_array($req)
{
$Nbre_point = $result[\"Points\"];
}
}
}

Nom et prénom:,
0

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

Posez votre question
stealon Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 20 mai 2018
12 févr. 2012 à 01:08
J'ai oublier de signaler que je déclenche l'action grâce à un événement javascript onchage sur la balise select.
0
stealon Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 20 mai 2018
5 mars 2012 à 01:39
Après beaucoup de recherche j'ai fini par résoudre mon problème et je le poste pour ceux à qui ça pourrait être utile.
On a besoin de trois fichiers celui du formulaire que je peux appeler formulaire.html ,celui qui reçoit la raquette appelé traitement_reponse.php et enfin un fichier javascript où l'on va mettre l'objet XMLHttpRequest d'ajax
Dans le fichier formulaire.html on a notre furmulaire:

<html>
<head>
    <title="exemple d'utilisation d'ajax</title>
    <script type="text/javascript" src="objetXHR.js"></script>
    <script type="text/javascript">
     function request(variable)
              {
var xhr   = getXMLHttpRequest();//je crèe l'objet XMLHttpRequest
                //je définie les variables
                var Statut = document.getElementById('statut').options[document.getElementById('statut').selectedIndex].value;
               var Nom = document.getElementById('nom').value;
               var Prenom = document.getElementById('prenom').value;
               
               xhr.onreadystatechange = function()
   {					 
     if(xhr.readyState 4 && (xhr.status 200 || xhr.status == 0))//si la reponse du serveur est prête:
{
                          
                          var resultat;
          resultat = xhr.responseText;
  variable.textContent = resultat;  //variable passée en argument
                          //on peut faire un alert avec le résultat
                          alert(resultat);
                        }
                        if(xhr.readyState < 4) // si le serveur n'a pas encore répondu
   			   {
    // on peut afficher un image  de pregression 							
           }
                    };
                //on protège les variables pour conserver les caractère spéciaux et les espaces
                 var nom_e = encodeURIComponent(nom);
 var prenom_e = encodeURIComponent(prenom);
 //les variables que l'on va envoyer en methode post
                var date = "Nom="+Nom+"&Prenom="+Prenom+"&Statut="+Statut;
                 //on envoie enfin la requêtte
                xhr.open("POST", "traitement_reponse.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
              }
    </script>
</head>
<form name="mon_formulaire" method="post" aciont="page_suivante.php">
    <label for="nom"> votre nom:</label>
     


    <labe for="prenom">Votre prenom:</label>
    


    <label for="statut">Votre statut:</label>
    <select name="statut" id="statut" onchange="request"(document.getElementById('nbPoint');>
        <option value="sélectionner" selected="selected">Sélectionner</option>
        <option value="nouveau">Nouveau</option>
        <option value="ancien">Ancien</option>
    </select>
</form>




Vos points


</html>


Le fichier javascript qui contient notre objet XMLHttprequest:
     function getXMLHttpRequest() 
    {
 var xhr = null;

 if (window.XMLHttpRequest || window.ActiveXObject) 
    {
 if (window.ActiveXObject) 
    {
 try 
    {
 xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
 catch(e) 
    {
     xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
 else 
    {
 xhr = new XMLHttpRequest(); 
    }
    } 
 else 
    {
 alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
 return null;
    }
     return xhr;
    }


Le fichier php qui va traiter la requête :traitement_reponse.php

    header("Content-Type: text/plain");
    require_once("config.php"); //le ficher de configuration
    //la connection à la bd
    $connect=mysql_connect($host,$user_ap,$pass_user);
    mysql_select_db($db);
    
    if(!empty($_POST["Statut"]) && !empty($_POST['Nom']) && !empty($_POST['Prenom']))
      {
       $Nom = mysql_real_escape_string($_POST['Nom']);
       $Prenom = mysql_real_escape_string($_POST['Prenom']);
       $req mysql_query("SELECT Nbr_point FROM TABLE WHERE Nom '$Nom' AND Prenom ='$Prenom'") or die(mysql_error());
        $result = mysql_fetch_array($req);
        $NBPoint = $result['Nbr_point'];
       
        //la réponse qu'envoie le serveur
         echo $NBPoint;
      }


Bon voila j'espère que ce code va aider beaucoup de personnes. c'est vrai qu'il est incomplet concernant l'épuration des variables afin de voir si elle ne contient pas des impuretés avant d'être envoyer par la requête mais c'est juste fait à la va vite, pour éclairer ceux qui en ont besoin. surtout n'oubliez pas de coucher la case si ça vous aider. merci
0
Rejoignez-nous