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] Appel de fichier avec Ajax et jQuery


Sujet :

AJAX

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut [AJAX] Appel de fichier avec Ajax et jQuery
    Bonjour,

    Je commence l'ajax et jquery donc je ne connais pas grand chose...
    J'ai donc un problème "d'appel de page".

    Voici la fonction :

    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
     
    function writediv(texte, endroit)
    	{
    		document.getElementById(endroit).innerHTML = texte;
    	}
    function affichermenu(fichier)
    	{
    		if(texte = file(fichier))
    		{
    			writediv(texte, 'page');
    		}
    	}
    function file(fichier)
         {
    		 if(window.XMLHttpRequest) // FIREFOX
    			  xhr_object = new XMLHttpRequest(); 
    		 else if(window.ActiveXObject) // IE
    			  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
    		 else 
    			  return(false); 
    		 xhr_object.open("GET", fichier, false); 
    		 xhr_object.send(null); 
    		 if(xhr_object.readyState == 4) return(xhr_object.responseText);
    		 else return(false);
         }
    Mes fonctions marches sur toutes mes pages sauf une.

    Je vous explique :

    Elles marchent pour les fichiers contenant du php et du html.
    Sauf que la page qui ne marche pas est celle d'un fichier contenant une galerie d'image style "coverflow" donc avec du javascript et du php.

    Mes fonctions ne font pas s'exécuter le javascript de ma page appelé, je compte donc sur vous pour m'éclairer pour que tout ça marche


    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Merci beaucoup c'est exactement ça

    Désolé de pas avoir trouvé dans la FAQ avant

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut

    Je suis désolé mais ça ne marche pas... J'ai testé le fichier seul et il marche bien mais quand je l'appel et que j'évalue le JS il ne marche plus, il ne me mes que le HTML...

    Voici ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function affichermenu(fichier)
    	{
    		if(texte = file(fichier))
    		{
    			writediv(texte, 'page');
    			var mesScripts = document.getElementById("page").getElementsByTagName("script");
    			for (var i=0; i<mesScripts.length; i++)
    			{
    				eval(mesScripts[i].src);
    			}
    		}
    	}
    Une idée?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Je suis en train de m'acharner dessus mais je ne trouve toujours pas la solution.

    Ce que j'ai essayé :
    _ mettre les scripts dans les balises script (pas de src) et changer le .src en .innerHTML => ne marche pas
    _ faire un eval de toute la réponse => ne change rien
    _ j'ai remplacé la réponse du xhr par "jhff<script>alert('Hello');</script>kjg ksg j" et là ça marche il exécute le script

    Puis j'ai remarqué que la liste d'image était présente dans le code source une fois la page appellé mais elles ne s'affiche pas
    J'en ai donc conclus que mon problème de JS était réglé mais que maintenant ce qui bloque c'est que le html n'est pas exécuté. J'ai eessayé un eval mais ça marche pas xD

    Donc je me retourne encore vers vous

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Par défaut
    Salut,

    Alors essaie de mettre tes fonctions dans la page appelant ca pourrai peut être t'aider car j'ai eu le même problème et ca a réglé mon soucis.

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Floco Voir le message
    _ j'ai remplacé la réponse du xhr par "jhff<script>alert('Hello');</script>kjg ksg j" et là ça marche il exécute le script
    c'est donc que la mécanique est OK.
    Ta réponse Ajax est peut être mal formatée.
    Tu peux en faire un copié/collé ici ?

    A+

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Alors essaie de mettre tes fonctions dans la page appelant ca pourrai peut être t'aider car j'ai eu le même problème et ca a réglé mon soucis.
    Déjà fait mais ça ne change rien.


    c'est donc que la mécanique est OK.
    Ta réponse Ajax est peut être mal formatée.
    Tu peux en faire un copié/collé ici ?

    A+
    Je l'ai effacée car je devais vite résoudre le problème et j'ai donc palier le problème en supprimant l'ajax... Je charge la div (non visible sur la page) au chargement de la page et quand je veux l'appeler je la fait apparaitre (Oui je sais c'est du code très sale mais j'avais pas le choix)

    Donc je refais la fonction qui ne marchais pas et je la poste ici d'ici peut mais je pense que le problème est que ma fonction javascript du fichier appelé appel elle même un fichier php... Je pense donc que lorsque je fais un eval(mon_script_js) il faudrait faire dans le fichier js un eval(ma page php).

    Qu'en pensez-vous?

    Je testerais tout ça demain si j'ai le temps et je vous dirais si c'était la solution

    En tout cas, merci à vous pour votre aide

  9. #9
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Si tu utilises jQuery (comme le titre de ton post l'indique) alors tu disposes de fonctions toutes faites pour Ajax, et qui s'occupent de créer tes scripts chargés etc...

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $.get("test.php", function(data){
       alert("Données: " + data);
     });
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('#divDest').load('test.php', function() {
      alert('chargement ok.');
    });
    Plus d'infos sur le forum jQuery ou dans leur doc: http://api.jquery.com/category/ajax/

    ERE

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Merci !

    Ça va beaucoup m'aider, me facilité la vie et surtout allégé mon code xD

    Je testerais tout ça cette aprem

    Encore merci

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Désolé, hier je n'est pas eu le temps d'essayer.

    Donc je viens de le faire :

    La fonction load marche bien mais j'ai toujours le même problème pour ce qui est du script.
    J'ai donc essayé avec les scripts dans la page appelé :

    $('#page').load('appelcoverflow.php');
    var mesScripts = document.getElementById('page').getElementsByTagName('script');
    for (var i=0; i<mesScripts.length; i++)
    {
    eval(mesScripts[i].src);
    }
    Puis j'ai essayé de mettre les scripts dans la page principale :

    $('#page').load('appelcoverflow.php');
    Dans les 2 cas ça ne marche pas, cela affiche le code HTML si je regarde le source de la page mais ça n'affiche pas les image (ce sont des balises img).
    Ce qui est "marrant" c'est que si j'enlève les scripts dans la page principale et dans la page appelé, j'ai mes images qui ce mettent l'une en dessous des autres. Donc un bout du script doit bien s'exécuter mais il ne va pas jusqu'au bout puisque je n'est pas ma galerie

  12. #12
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Essaie plutôt cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $.get("appelcoverflow.php", 
            function(data){
                $('#page').html(data);  /*injecte le html dans l'élément page */
            },
            "html"  /* force les scripts retournés à être évalués */
            );
    ERE

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Décidément ça ne marche pas non plus.

    Merci de ton aide

  14. #14
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Pose la question dans le forum jQuery, je suis sûr que ce n'est qu'une question d'ajustement ou alors c'est que ton code coince quelque part.

    Bon dev,

    ERE

  15. #15
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Ok merci beaucoup

    Bon dev à toi aussi

Discussions similaires

  1. [AJAX] [Upload] Envoi de fichiers avec ajax et jquery
    Par zerros dans le forum jQuery
    Réponses: 3
    Dernier message: 23/10/2015, 20h23
  2. Réponses: 4
    Dernier message: 27/09/2009, 15h25
  3. [AJAX] Appeler un fichier include PHP avec ajax
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/10/2008, 12h17
  4. Upload des fichier avec AJAX
    Par Pedro Varela dans le forum ASP.NET
    Réponses: 6
    Dernier message: 23/01/2007, 07h52
  5. [AJAX] upload fichiers avec AJAX
    Par jibouze dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2005, 21h04

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