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

jQuery Discussion :

AJAX et JQUERY non interprété


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut AJAX et JQUERY non interprété
    Bonjour,

    J'espère que je ne me suis pas trompé de forum =x.

    Voilà mon problème :

    J'ai une page PHP "detail.php" avec en partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="res_lieu"></div>
    Cette page charge la librairie JQuery et la fonction que je veux mettre en place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript" src="jquery-1.2.6.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
    	$(".deslieu").css('cursor','pointer').click(function(){
    	    $(".nuyu").slideToggle('medium');
    	});			
    });
    Elle prépare aussi l'AJAX de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function get_xhr(){
            var xhr; 
            try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
            catch (e) 
            {
                    try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
                    catch (e2) 
                    {
    	                  try {  xhr = new XMLHttpRequest();     }
            	          catch (e3) {  xhr = false;   }
                    }
            }
            return xhr;
    }

    Ensuite, j'ai une page "req_ajax.js" pour l'exécution de l'AJAX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function lieu(reg,lieu_select){
    	var xhr = get_xhr();
    	var reg;
    	var lieu_select;
    	xhr.onreadystatechange  = function() {
    		if(xhr.readyState  == 4)
    		{
    			document.getElementById("res_lieu").innerHTML = xhr.responseText;
    		}
    	};
     
    	xhr.open("GET", "data.php?reg="+reg+"&lieu="+lieu_select, true);
    	xhr.send(null);	
    }
    Comme on peut le constater, la page "data.php" est appelée et contient les requêtes AJAX et la mise en page. Tout cela sera inséré dans une "div" ayant pour id "res_lieu".

    Le problème est que le JQuery ne fonctionne pas si je l'utilise dans la page "data.php" alors qu'il fonctionne très bien dans la page "detail.php".

    Le JQuery n'ai pas interprété quand il est inséré avec de l'AJAX.

    J'ai essayé bon nombre de solutions, sans succès...

    Donc voilà, peut-être que quelqu'un saura m'éclairer, parce que c'est vraiment embêtant...

    J'espère que j'ai été assez clair =/.

  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
    Par défaut
    Tout simplement parce que jQuery est interprété coté client et data.php coté serveur en renvoyant juste du contenu...
    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 averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    Ce n'est pas une explication que je recherche (encore moins sur ce ton, surtout venant d'un modérateur),mais une solution. Si solution il y a...

  4. #4
    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
    Par défaut
    encore moins sur ce ton
    Quel ton ???
    Sinon, la solution est bien contenue dans ma réponse : le code php coté serveur ne peut pas interpréter le javascript et le navigateur n'interprète pas un contenu renvoyé via Ajax comme une page web mais comme une chaine de caractères.
    Ce que tu peux faire, c'est utiliser les fonctions Ajax de jQuery pour appeler ta page et interpréter le code javascript récupéré s'il y en a.
    Mais encore une fois, le traitement jQuery sur le serveur est impossible.
    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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Par défaut
    Salut

    J'ai pas mal galere sur un truc de ce genre ou je voulais faire apparaitre un calendrier dans une reponse ajax.
    La solution que j'ai trouve en me balladant longtemps, mais tres longtamps sur les forum est la suivante

    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
     
    	<script type="text/javascript" charset="utf-8">
        $(function()				
    				$('.date-pick').datePicker({clickInput:true,startDate:'01/01/1996'});							
    				$("#choix_periode").change(getPeriodicite);  						                    
    			}
     
        );	
    	//});
     
    	function getPeriodicite() {				                    	
        var selected = $("#choix_periode option:selected"); 
        val_data="val="+selected.val();	
        $.ajax({
    	  type: 'POST',
    	  url: 'periode.php',	
    	  data: val_data,
          success: ok,
          error: function (){alert ('Failure'+response.responseText);}
          });
        }		
     
    	function ok(reponse) {
    	    $.ajaxSetup({
               async: false
            });						                    	
    	     $('#periode').html(reponse);  		
             $.getScript("agenda.js");
    	    $.ajaxSetup({
               async: false
            });		  		  
    	}
        </script>
    en fait j'appelle la fonction getperiodicite qui m'ajoute un champ texte avec un petit calendrier qui apparrait lorsque je clique sur le champ texte. Mais cette fonction calendrier etait dans le fichier periode.php.

    Pour que ca marche il faut appeler le fichier agenda.js par $.getScript pour interpreter ton code jquery
    agenda.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.date-pick3').datePicker({clickInput:true,startDate:'01/01/1996'});
    c'et a dire que tu mets dans ce fichier .js le code jquery que tu dois utiliser

    Je ne sais pas si j'ai ete tres cliar, mais maintenant a toi de mettre ca en place pour ton prog

    A+


  6. #6
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Ce n'est pas une explication que je recherche (encore moins sur ce ton, surtout venant d'un modérateur),mais une solution. Si solution il y a...
    En tout cas, c'est clairement pas avec ce ton condescendant que tu auras une solution.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    Merci philippe_jmh !

    Alors ouais, en gros, c'est le même problème que moi, sauf que moi je faisais de l'AJAX "traditionnel", pas avec du JQuery, chose que j'ai faite.

    Il y avait toujours le même problème mais avec ton code, ça a fonctionné =).

    Je vais faire des tests un peu plus poussés, mais ça semble marcher très bien.

    ---------------------------------------------------
    ---------------------------------------------------

    Sinon pour le "ton" :
    Tout simplement parce que jQuery est interprété coté client et data.php coté serveur en renvoyant juste du contenu...
    Le "Tout simplement" couplé avec les "..." à la fin, c'est, syntaxiquement parlant, prendre les gens de haut. Alors c'est peut-être mal dit, non pensé ou inconscient, mais n'empêche que je l'ai plutôt mal interprété.

    Surtout si on regarde la signature qui vante le fait d'être cassant et chambreur.

    Donc effectivement, pour moi c'était cassant, chose qu'un modérateur ne devrait pas se permettre d'être selon moi, surtout dans une première réponse, qui ne fait pas avancer grand chose qui plus est. Alors que la deuxième réponse était déjà bien plus constructive.

    Donc ma réponse a peut-être été sèche et sur un ton condescendant, mais je répond comme on me parle.

    Après, erreur d'interprétation, peut-être, mais je me suis fié à la signature.

    Sur ce, toute mes excuses si ce n'était pas voulu et remercie de m'avoir éclairé =).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/08/2011, 14h41
  2. Réponses: 2
    Dernier message: 10/10/2009, 19h40
  3. Réponses: 1
    Dernier message: 25/09/2009, 12h03
  4. [AJAX] lien (href) cliquable si ajax (onclick) non interprété
    Par juJuv51 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/02/2007, 15h34

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