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 :

Récupérer variable json dans fichier .html


Sujet :

jQuery

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 851
    Par défaut Récupérer variable json dans fichier .html
    Bonjour,

    J'ai fais un script d'upload de fichier qui est dans un <input type="file">. Le fichier est envoyé vers la page "cgiFile.htm" :
    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
    if('FormData' in window){
    	var form = new FormData();
     
    	var $inpuFile = $('[name="' + inputFile_name + '"]');
    	form.append('file', $inpuFile[0].files[0]);
     
    	$.ajax({
    		processData: false,
    		contentType: false,
    		data: form,
     
    		url: "cgiFile.htm",
    		dataType: "html",
    		type: "POST",
    		cache: false
    	});
     
    	return false;
    }


    Contenu du fichier "cgiFile.htm" retourné
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!doctype html>
    <html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>return status of uploaded file</title>
     
        <script type="text/javascript"> 
            var jsonObj = {"status":"OK", "msg":"hello world !"};
            var iframe_name = window.frameElement.getAttribute("Name");
     
            window.parent.success(iframe_name, jsonObj);
        </script>
    </head>	
    <body></body>
    </html>

    Est-il possible de récupérer la variable jsonObj qui est dans ce fichier pour pouvoir l'utiliser dans mon script ?
    Ce fichier est à la base chargé dans une <iframe> : la fonction window.parent.success() est exécutée automatiquement lorsque le fichier est chargé dans la <iframe>, ce qui permet depuis ma page principale de pouvoir traiter le contenu de la variable jsonObj.
    => j'aimerai donc pouvoir faire la même chose mais via ajax (ce qui me permettrait d'afficher une progressBar).

    => si vous n'avez pas compris n'hésitez pas à me le dire


    merci d'avance,

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 851
    Par défaut
    Je me suis peut etre mal exprimé.

    Ce que je veux faire :
    Je récupère la page html "cgiFile.htm" via ajax et j'aimerai pouvoir récupérer la valeur de l'objet jsonObj qui est à l’intérieur pour pouvoir l'utiliser dans mon script
    => en espérant que ça soit plus clair...

  3. #3
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut,

    tu peux la viser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.frames[0].jsonObj
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          $('document').ready(function() {
            $('#moniframe').on('load', function() {
              alert(window.frames[0].jsonObj);
            });
          });

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 851
    Par défaut
    je ne suis pas sure d'avoir compris : ton code va chercher une variable qui est dans une iframe ?
    => or, il n'y a pas de iframe dans ma page vu que je récupère ma page en ajax : le contenu de la page est dans la variable data de la fonction success de l'objet $.ajax.

  5. #5
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    arf ... je croyais que tu chargeais ton doc HTML dans une iframe ...
    ben la je sais pas

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 851
    Par défaut
    oki merci quand meme

  7. #7
    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
    Je ne comprends pas trop...
    Si tu veux uniquement récupérer les données JSON, pourquoi renvoies-tu une page HTML complète ?

    Il faudrait que tu fasses la requête vers une page (ou un script) qui ne renvoie que le JSON...
    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

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 851
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Je ne comprends pas trop...
    Si tu veux uniquement récupérer les données JSON, pourquoi renvoies-tu une page HTML complète ?
    Pour être compatible avec IE8 ... le problème est que IE8 ne gère pas l'objet FormData() et on ne peut donc pas uploader un fichier via ajax : il faut donc le faire à l'ancienne, c'est à dire faire un formulaire avec la propriété "target" qui pointe vers une iframe.



    Citation Envoyé par Bovino Voir le message
    Il faudrait que tu fasses la requête vers une page (ou un script) qui ne renvoie que le JSON...
    => c'est ce que je fais actuellement : si l'objet FormData() n'est pas géré, j'envoie mon fichier vers une page .html sinon vers une page .json. Mais je voulais voir s'il n'existe pas une méthode pour éviter de devoir doubler le nombre de mes fichiers pour la gestion de l'upload.

Discussions similaires

  1. Récupérer une variable javascript (dans fichier txt ou autre chose)
    Par theos37 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/09/2011, 16h14
  2. Variables dans fichier html
    Par phil74 dans le forum Langage
    Réponses: 4
    Dernier message: 12/08/2009, 12h15
  3. Variables dans fichier html
    Par phil74 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/08/2009, 20h49
  4. Variables globales dans fichiers entête
    Par benj_f04 dans le forum C++
    Réponses: 5
    Dernier message: 13/08/2004, 09h06

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