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

ASP.NET Discussion :

[C#] Poster une page en jQuery et récupérer les valeurs dans un webService ASMX


Sujet :

ASP.NET

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut [C#] Poster une page en jQuery et récupérer les valeurs dans un webService ASMX
    Bonjour à tous,

    Voilà, j'utilise pas mal jQuery pour certains traitements, mais là, je sèche.
    Lors du clic sur un bouton, j’aimerais poster le formulaire sans rafraichir la page.
    L'idéal aurait été de lancer le flux vers un webService et de pouvoir récupérer une chaine de retour après traitement.

    J'ai fait ca en javascript jQuery qui lance bien mon webService:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.post("WebService.asmx/sauve", function(data){ alert("Data Loaded: " + data); });
    Seulement, dasn mon webService, pas moyen de récuperer les données de mon formulaire:
    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
        [WebMethod]
        public string sauve() {
            string str = "" + HttpContext.Current.Request.Form.Count.ToString();
            StreamWriter sw = new StreamWriter(Server.MapPath("TESTDAVID3.TXT"), false, System.Text.Encoding.Default);
            sw.WriteLine("Nous sommes le {0} et il est {1} ({2} items) ",
                    DateTime.Now.ToLongDateString(), DateTime.Now.ToLongTimeString(), HttpContext.Current.Request.Form.Count.ToString());
            foreach (string name in HttpContext.Current.Request.Form) {
                if (HttpContext.Current.Request.Form[name] != "") {
                    sw.WriteLine(name + ": " + HttpContext.Current.Request.Form[name].ToString() + ". ");
                }
            } // */
            sw.Close();
            sw = null;
            return str;
        }
    Le fichier est bien créé, mais il me dit qu'il y a 0 Request.Form.Count.

    Pour info, ce sont des input au format HTML qui sont dans ma page et je ne connais ni leur nom ni leur quantité à l'avance, c'est issu d'une transformation XML/XSL

    Avez vous une idée ?

    Merci d'avance.
    David.

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Ca ne peut pas marcher! Lorsque tu fais ton $.post() tu crées une nouvelle requête vers ton webservice et cette requête n'envoie pas les variables de ton formulaire actuel.
    L'idée est que, vu que $.post() accepte une map de parametres dans sa signature, tu recopies toutes les valeurs dont tu aurais besoin dans la map.

  3. #3
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Bonjour PitMaverick78,

    Merci pour ta rapidité.
    A l'intitulé du nom de la fonction, j’entendais qu'il faisait un post, un vrai.

    J'ai bien pensé à faire ce que tu dis. L'ennui c'est que je ne connais pas la quantité et encore moins le nom et le type des champs de formulaire que pourra contenir ma page.
    De plus, je crains que le javascript ne transforme mes données (caractères accentués, caractères spéciaux, ...)

    J'ai pensé à une éventuelle solution: Rediriger le target de ma form vers un webService...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        document.forms[0].target = "xx";
        document.forms[0].submit(); // */
    Qu'en penses tu ?

    Sinon, n'y a t'il vraiment aucun moyen de poster un formulaire sans rafraichissement ?
    David.

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par dacid Voir le message
    Bonjour PitMaverick78,

    Merci pour ta rapidité.
    A l'intitulé du nom de la fonction, j’entendais qu'il faisait un post, un vrai.

    J'ai bien pensé à faire ce que tu dis. L'ennui c'est que je ne connais pas la quantité et encore moins le nom et le type des champs de formulaire que pourra contenir ma page.
    De plus, je crains que le javascript ne transforme mes données (caractères accentués, caractères spéciaux, ...)

    J'ai pensé à une éventuelle solution: Rediriger le target de ma form vers un webService...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        document.forms[0].target = "xx";
        document.forms[0].submit(); // */
    Qu'en penses tu ?

    Sinon, n'y a t'il vraiment aucun moyen de poster un formulaire sans rafraichissement ?
    J'ai des doutes sur cette possibilité... (D'abord parceque je suis une buse en JQuery et aussi parceque ca fait un bout de temps que j'ai pas fait de ASP.Net). Je sais qu'avec un UpdatePanel c'est possible.

  5. #5
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    En effet, c'est à l'eau.
    Quoi que tu mettes dans le Target (l'attribution en js fonctionne très bien), ca lui fait ouvrir une autre fenêtre.

    Je vais titiller un peu l'Update Panel, on verra.

    David.
    David.

Discussions similaires

  1. [Débutant] Récupérer les valeurs dans une structure
    Par Kichott dans le forum MATLAB
    Réponses: 6
    Dernier message: 05/08/2009, 08h37
  2. Réponses: 21
    Dernier message: 18/11/2008, 14h36
  3. Récupérer les valeurs dans une PropertyInfo
    Par Psycadi dans le forum C#
    Réponses: 2
    Dernier message: 13/06/2008, 12h17
  4. Problème récupérer les valeurs dans une Hash
    Par pymouse dans le forum Langage
    Réponses: 4
    Dernier message: 12/07/2007, 17h11
  5. Récupérer les valeurs dans une fonction
    Par matmay dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/05/2007, 16h50

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