Lien vers un include sans recharger la page avec Ajax [Résolu]

cs_smoke 28 Messages postés lundi 26 juillet 2004Date d'inscription 18 mai 2011 Dernière intervention - 16 août 2006 à 22:06 - Dernière réponse : stealon 18 Messages postés lundi 12 janvier 2009Date d'inscription 20 mai 2018 Dernière intervention
- 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?
Afficher la suite 

Votre réponse

6 réponses

nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 16 août 2006 à 22:44
+3
Utile
Salut

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

L'exemple parait clair.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
cs_smoke 28 Messages postés lundi 26 juillet 2004Date d'inscription 18 mai 2011 Dernière intervention - 17 août 2006 à 00:00
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_smoke
stealon 18 Messages postés lundi 12 janvier 2009Date d'inscription 20 mai 2018 Dernière intervention - 11 févr. 2012 à 23:59
0
Utile
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.
Commenter la réponse de stealon
stealon 18 Messages postés lundi 12 janvier 2009Date d'inscription 20 mai 2018 Dernière intervention - 12 févr. 2012 à 01:04
0
Utile
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:,
Commenter la réponse de stealon
stealon 18 Messages postés lundi 12 janvier 2009Date d'inscription 20 mai 2018 Dernière intervention - 12 févr. 2012 à 01:08
0
Utile
J'ai oublier de signaler que je déclenche l'action grâce à un événement javascript onchage sur la balise select.
Commenter la réponse de stealon
stealon 18 Messages postés lundi 12 janvier 2009Date d'inscription 20 mai 2018 Dernière intervention - 5 mars 2012 à 01:39
0
Utile
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
Commenter la réponse de stealon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.