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 :

Forcer le téléchargement des données récupérées via jQuery.ajax()


Sujet :

jQuery

  1. #1
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut Forcer le téléchargement des données récupérées via jQuery.ajax()
    Bonjour,

    Dans ma page HTML, j'ai un bouton.
    Ce bouton doit me permettre de récupérer des données grâce à un appel à un web-service, puis de forcer le navigateur à ouvrir la fenêtre permettant de télécharger les données sous forme de fichier.


    J'utilise la fonction JQuery.ajax() pour appeler mon web-service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     $("#btnTest").click(function() {
            var arrayId = ["10","11"];
            var param2= 1;
            $.ajax({
                type: "POST",
                url: "MyPage.aspx/toto",
                data: JSON.stringify({ "listId": arrayId, "param2": param2}),
                contentType: "application/json; charset=utf-8",
                //dataType: "json",
                complete: completeRequest,
                success: successPost,
                async: true
            });
        });

    Au retour de ma fonction, je récupère une string réprésentant des données au format csv comme ceci :

    id;lib
    1;toto
    2;titi


    Dans ma fonction successPost, comment faire pour forcer le navigateur à ouvrir la fenêtre me demandant si je veux télécharger ces données ?
    Est ce possible déjà ?

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    pourquoi utiliser ajax du coup ???
    il te suffit de faire un lien vers un fichier coté serveur qui fait un force download en retour
    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 habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut
    J'utilise JQuery pour la raison suivante :

    Le web-service que j'appelle prend 2 paramètres, le 1er étant une liste d'ID.
    Je récupère cette liste d'ID dans un tableau généré dynamiquement dans ma page HTML.
    J'ai besoin des sélecteurs JQuery afin de récupérer ces ID.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var arrayId = [];
    $("#gdv .lblId").each(function (index) {
        arrayId.push($(this).text());
    });
    Je n'ai pas trouvé d'autre moyen autre pour récupérer les paramètres de ma fonction.


    Il s'agit d'un site en ASP.NET WebForms, j'utilise C# comme langage serveur, j'ai essayé de mettre un bouton runat="server" et de faire mon traitement dans l'évènement de clic.
    Par ce moyen j'arrive à ouvrir une fenêtre de téléchargent dans mon navigateur, mais je n'arrive pas à récupérer les paramètres de ma fonction.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected void btnServerTest_OnClick_(object sender, EventArgs e){
            var response = HttpContext.Current.Response;
            var headerValue = String.Format("attachment; filename={0}", "toto.csv");
            response.AddHeader("content-disposition", headerValue);
            response.ContentType = "application/octet-stream";
            var utf8 = Encoding.UTF8;
            response.Charset = utf8.HeaderName;
            response.ContentEncoding = utf8;
            response.Flush();
            response.Write("Une chaîne de caractère de test");
            response.End();
    }

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    alors sur le retour de ton ajax dans le success fait un window.location.href qui pointe vers le force download
    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 !

Discussions similaires

  1. Réponses: 14
    Dernier message: 21/04/2011, 23h05
  2. [VB6][MYSQL] recuperer des données MySQL via PHP
    Par psykotox dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 18/01/2008, 11h25
  3. Ajout des données à BD via Hibernate
    Par mamadou_76 dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/05/2007, 08h48
  4. recuperer des données MySQL via PHP en VB6
    Par pobrouwers dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/04/2007, 12h33
  5. [MySQL] Problème d'insertion des donne récupère ds la BDD
    Par makaphrodite dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 30/12/2006, 12h46

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