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

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

Votre réponse

6 réponses

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

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

L'exemple parait clair.

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de nhervagault
Meilleure réponse
Messages postés
28
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
18 mai 2011
- 17 août 2006 à 00:00
3
Merci
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

Merci cs_smoke 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_smoke
Messages postés
18
Date d'inscription
lundi 12 janvier 2009
Dernière intervention
20 mai 2018
- 11 févr. 2012 à 23:59
0
Merci
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
Messages postés
18
Date d'inscription
lundi 12 janvier 2009
Dernière intervention
20 mai 2018
- 12 févr. 2012 à 01:04
0
Merci
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
Messages postés
18
Date d'inscription
lundi 12 janvier 2009
Dernière intervention
20 mai 2018
- 12 févr. 2012 à 01:08
0
Merci
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
Messages postés
18
Date d'inscription
lundi 12 janvier 2009
Dernière intervention
20 mai 2018
- 5 mars 2012 à 01:39
0
Merci
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.