IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Chargement données ajax


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 62
    Points : 42
    Points
    42
    Par défaut [AJAX] Chargement données ajax
    Bonjour,

    Actuellement j'utilise ce type de script pour charger des donnés d'une page dans une div lors d'un clique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <script language="JavaScript">
     
    	function createInstance()
    	{
            var req = null;
    		if (window.XMLHttpRequest)
    		{
     			req = new XMLHttpRequest();
    		} 
    		else if (window.ActiveXObject) 
    		{
    			try {
    				req = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e)
    			{
    				try {
    					req = new ActiveXObject("Microsoft.XMLHTTP");
    				} catch (e) 
    				{
    					alert("XHR not created");
    				}
    			}
    	        }
            return req;
    	};
     
    	function storing(data, element)
    	{
    		element.innerHTML = data;
    	}
     
     
    	function homed(element)
    	{ 
    		var req =  createInstance();
     
    		req.onreadystatechange = function()
    		{ 
    			if(req.readyState == 4)
    			{
    				if(req.status == 200)
    				{
    					storing(req.responseText, element);	
    				}	
    				else	
    				{
    					alert("Error: returned status code " + req.status + " " + req.statusText);
    				}	
    			} 
    		}; 
    		req.open("GET", "ajaxniv0.php?id=<?php echo"$idbase"; ?>&idrestaurant=<?php echo"$idrestaurant"; ?>&retour1=<?php echo"1"; ?>&retour2=<?php echo"1"; ?>", true); 
    		req.send(null); 
    	} 
    </script>
    <div id="storage">
    Mais le soucis c'est que la page charger est considérer comme une autre page et dans la page ajaxniv1 j'ai un javascript qui fonctionne avec la page principal ou se trouve le lien

    Est il possible de charger ce qui est dans la page ajaxniv0.php lors du clic comme si cela etait du code charger a la base dans le fichier ? en gros je veux que la page ajaxniv0.php prenne toutes les style et javascript de la page ou se trouve le lien pour afficher la page (comme ci cela etait une include)

    est il possible de faire cela ? si oui avec quel fonction ? je vous remercie

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 62
    Points : 42
    Points
    42
    Par défaut
    désoler de relancer mais je trouve vraiment pas comment faire ...

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Un bump après seulement six heures, mais quelle impatience

    Pour commencer voici ton code auquel j'ai fait quelques retouches :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <script type="text/javascript"> // l'attribut language est déprécié
     
      function createInstance() {
        var req = null;
        if (window.XMLHttpRequest) {
          req = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
          try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (e1) {
            try {
              req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) {
              alert("XHR not created");
              /* Attention ce message apparaît à l'utilisateur,
                 pas à un développeur. Que doit-il comprendre quand il voit ça ?
                 Que peut-il faire ? Indice : tu devrais lui conseiller de se trouver
                 un navigateur plus récent */
            }
          }
        }
        return req;
      };
     
      function storing(data, element) {
        element.innerHTML = data;
      }
     
      function homed(element) {
        var req = createInstance();
     
        req.onreadystatechange = function() {
          if (req.readyState === 4) {
            if (req.status === 200) {
              storing(req.responseText, element);
            } else {
              alert("Error: returned status code " + req.status + " " + req.statusText);
              /* idem que plus haut : c'est un message adressé à l'utilisateur,
                 il faut lui expliquer ce qui se passe.
                 Notamment, s'il s'agit d'une 404, il peut peut-être arranger le
                 problème lui-même en vérifiant sa connexion au Net. */
            }
          }
        };
     
        /* j'ai retiré des guillemets inutiles dans le code PHP
           ainsi que le 3e paramètre à open, il ne sert à rien
           (en fait si, il sert à quelque chose, mais crois-moi il vaut mieux
           que tu ne saches pas) */
        req.open("GET", "ajaxniv0.php?id=<?php echo $idbase; ?>&idrestaurant=<?php echo $idrestaurant; ?>&retour1=<?php echo '1'; ?>&retour2=<?php echo '1'; ?>");
        req.send();
      }
     
    </script>
    <div id="storage">

    Citation Envoyé par thomix68
    Mais le soucis c'est que la page charger est considérer comme une autre page
    Ce n'est pas exactement ça. Le code HTML entier de la page est inséré dans ta div, y compris le <head> et les feuilles de style. Les deux pages sont en quelques sortes mélangées.
    En revanche, les scripts de la page reçue par Ajax ne sont pas interprétés, pour des raisons de sécurité sans doute.

    Si tu veux récupérer uniquement le contenu du <body> pour éviter les interférences de CSS, tu dois faire une petite recherche dans responseText, avec indexOf et éventuellement une expression régulière, pour trouver les balises d'ouverture et de fermeture du <body>.

    Ensuite, si tu veux que les scripts soient interprétés, tu dois les rechercher de la même manière, et les passer à eval pour les interpréter. Assure-toi que tu sais ce qu'ils font avant, car eval est potentiellement une faille de sécurité si on lui passe n'importe quoi…
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. [AJAX] récupération donnée + ajax + balise select
    Par MG-openssl dans le forum AJAX
    Réponses: 11
    Dernier message: 18/09/2010, 16h54
  2. [AJAX] Chargement de donnée sql et affichage
    Par bastian06n dans le forum AJAX
    Réponses: 7
    Dernier message: 06/08/2010, 22h41
  3. Réponses: 1
    Dernier message: 27/05/2010, 19h39
  4. [AJAX] recupération données ajax
    Par corsamobile dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/06/2008, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo