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 :

JQuery, Ajax et docType.


Sujet :

jQuery

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut JQuery, Ajax et docType.
    Bonjour à tous,

    Je me permets de vous écrire car je suis bloqué sur un simplisme script depuis quelques heures. Je cherche simplement à récupérer une page html via la fonction .ajax de JQuery, puis à en interpréter le contenu javascript.

    Voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    			 $.ajax({ // Requete ajax 
    						dataType: "html",
    						type: "POST", 
    						url: "pts_display_search.php", 
    						async: true,
    						data: "keyword="+keyword,
    						success: function(data){ 
    							alert(data);
    							addOnglet("Project: "+keyword, data);
    						}
    					});
    Je reçoit correctement ma page, (j'ai vérifié le contenu avec l'alert() ). Cependant le script entre les balises n'est pas interprété.
    Voici le contenu de la page reçue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <!--
    <link rel="stylesheet" href="css/estilos.css" type="text/css">
    -->
     
    <script>alert("hello world");</script>
     
    ... La suite de la page ...
    Pourquoi?

    Savez vous si dataType: "html" est correct?
    Si oui, pourquoi ça rate? A quoi ça peut-être du?

    [je précise que je tourne avec la version 1.3.2 de jQuery]

    Merci de votre attention.

    La tortue.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ajax ne retourne que du texte ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Merci de ta réponse,
    J'ai trouvé ceci dans la documentation officielle de jQuery:

    Specifying the Data Type for AJAX Requests
    From jQuery JavaScript Library
    Jump to: navigation, search

    The $.ajax function gives you the ability to specify a dataType parameter, which gives jQuery a hint as to what to expect in the response from the server. Based on this hint, jQuery processes the response data and passes it as the first argument to your success callback function (if provided). You may specify the dataType as a key/value pair in the lone argument passed to $.ajax. Supported types are:

    * "xml": Treat the response as an XML document that can be processed via jQuery.

    * "html": Treat the response as HTML (plain text); included script tags are evaluated.

    * "script": Evaluates the response as JavaScript and evaluates it.

    * "json": Evaluates the response as JSON and sends a JavaScript Object to the success callback.
    * "html": Treat the response as HTML (plain text); included script tags are evaluated.
    Pardon, mais j'ai mal compris, j'avais donc cru comprendre avec cette phrase que les tags de scripts étaient évalués.

    Comment faire pour que tel soit le cas? Dois-je utiliser .get ou .post de jQuery?

    La tortue.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Ajax ne renvoie que du texte, Jquery ajoute la possibilité d'interprétation àprès réception, mais il ne l'est pas par defaut.
    as tu testé de mettre uniquement du script dans le retour ajax ?
    (avec ou sans le balises script)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Rebonjour,

    Je viens de trouver ce matin pourquoi ça ne fonctionnait pas.

    Le problème était que, avant d'afficher ce que je recevais, je le concaténais à autre chose en utilisant un innerHTML .
    Par contre, quand j'affiche directement le contenu (dans une div avec un .html() par exemple), alors là le contenu js de la page reçue est interprétée.

    Conclusion, le contenu jQuery se charge de lancer l'interprétation du js, non pas après la réception du contenu en ajax, mais à l'affichage avec ses méthodes.

    J'avoue qu'une fois compris c'est évident, encore fallait-il y penser.

    En tout cas, merci pour ton aide, SpaceFrog.
    La tortue.

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

Discussions similaires

  1. [JQuery] Ajax et bulle d'aide [ToolTip]
    Par Invité dans le forum jQuery
    Réponses: 1
    Dernier message: 04/07/2008, 10h18
  2. [JQuery] ajax avec Firefox
    Par elvan49 dans le forum jQuery
    Réponses: 2
    Dernier message: 17/12/2007, 12h21
  3. jquery ajax et IE
    Par Sourrisseau dans le forum jQuery
    Réponses: 1
    Dernier message: 01/09/2007, 05h17
  4. [JQuery] Ajax et réécriture d'url
    Par Nicolas N. dans le forum jQuery
    Réponses: 1
    Dernier message: 21/07/2007, 20h31

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