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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    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 659
    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 659
    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 éclairé Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    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 659
    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 659
    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