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

AJAX Discussion :

Récupérer la saisie utilisateur avec ajax


Sujet :

AJAX

  1. #1
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut Récupérer la saisie utilisateur avec ajax
    Bonjour,
    je fais un post avec ajax dans un fichier externe. voici le code de la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      <td class="sesd">@Html.TextBox("name", item.Product.name)</td>
                                    <td class="gftr">@Html.TextBox("total", item.Total)</td>
                                    <td class="gtrf">@Html.TextBox("quantity", item.Quantity)</td>
     
                    }
     
                    <td class="huyt"><a href="javascript:updatecartitems( @item.Product.Id, @item.Quantity)">modifier</a></td>
    et le fichier externe:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    function updatecartitems(id, qty) {
       formulaire = $("#Formulaire");
        //if (!formulaire.validate().form()) {
        //    // formulaire invalide - terminé
        //    return;
        //}
     
     
        $.ajax({
            url: '/RLT/UpdateCartItems',
            type: 'POST',
            datatype: 'html',
            data:"id="+id+"&qty="+qty ,
     
            beforeSend: function () {
                loading.show();
                //qty = $("#quantity");
                qty= document.getElementById("quantity").value;
            },
     
            success: function (data) {
                // content.html(data);
                content.html(data);
            },
     
            complete: function () {
                loading.hide()
     
     
            }
     
            //error : function(resultat){
            //    content.html(resultat.reponseText);
     
            //}
     
     
        });
     
    }
    le post envoie bien les données mais pas les données modifiées. le post n'envoie que les données initiales. je comprends que je ne recupère pas les données modifiées et pourtant je pensais bien le faire avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    beforeSend: function () {
                loading.show();
                //qty = $("#quantity");
                qty= document.getElementById("quantity").value;
            },
    je pense que je me prends mal aidez moi svp. comment recuperer une saisie utilisateur avec ajax ?

    Merci bien
    Prisson

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,

    je ne connais pas cette syntaxe : @Html.TextBox(...), @item.Product.Id,...

    Néanmoins, il faut récupérer les données modifiées DANS la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function updatecartitems( id ) {
       var formulaire = $("#Formulaire");
    //   var qty= document.getElementById("quantity").value; // syntaxe JavaScript
       var qty= $("#quantity").val(); // syntaxe jQuery
    ...
    encore faut-il que tu aies un input :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="quantity" name="qty" value="....." />
    Mais bon.
    Il faut nous expliquer plus précisément le fonctionnement : on peut modifier 1 seul produit à la fois ? plusieurs ?

    id="quantity" ne fonctionne qu'avec UN SEUL (car un id est UNIQUE).

  3. #3
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    Bonjour jreaux62,

    Merci bien pour la promptitude de ta réaction. il existe un lien modifier sur toutes les lignes et la modification de chaque ligne est validée par le lien modifié adjacent. en ajustant le code comme tu viens de me l'indiquer la première ligne réagit positivement mais les autres lignes pas encore.

    c'est peut-etre ce que tu voulais dire par ceci :
    Mais bon.
    Il faut nous expliquer plus précisément le fonctionnement : on peut modifier 1 seul produit à la fois ? plusieurs ?

    id="quantity" ne fonctionne qu'avec UN SEUL (car un id est UNIQUE).
    Merci pour la suite
    Prisson

  4. #4
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    Bonjour à tous.
    bon j'ai individualisé l'input des quantités ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <td><input id="@item.Quantity" name="@item.Product.Id" value="@item.Quantity" /></td>
    maintenant comment faire référence à l'élément ainsi nommé au niveau du code ajax ? J'ai cru que le code ci fonctionnerait mais non ca ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function updatecartitems(id, qty) {
       formulaire = $("#Formulaire");
     
       qty = $("#"+id).val();
     
     
        $.ajax({
            url: '/RLT/UpdateCartItems',
            type: 'POST',
            datatype: 'html',
            data:"id="+id+"&qty="+qty ,
    Merci d'avance.

  5. #5
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    je suis passé à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function updatecartitems(id, qty) {
       formulaire = $("#Formulaire");
     
      // qty = $(id).val();
       qty = $("#Tableau").find("#"+id).val();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><input id="@item.Product.Id" name="@item.Product.Id" value="@item.Quantity" /></td>
    mais jusque là sauf la première ligne reagit positivement et les lignes suivantes lèvent une exception.

    j'ai besoin de votre aide svp.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td><input id="qty-@item.Product.Id" name="qty" value="@item.Quantity" /></td>
     
    <td class="huyt"><a href="updatecartitems( @item.Product.Id ); return false;">modifier</a></td>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function updatecartitems( id )
    {
       formulaire = $('#Formulaire');
     
       qty = $('#qty-'+id).val();

  7. #7
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    Merci bien mon cher pour ta sollicitude.
    je recois le message suivant:
    Erreur du serveur dans l'application '/'.
    La ressource est introuvable.
    Description : HTTP 404. La ressource recherchée (ou l'une de ses dépendances) a peut-être été supprimée ou renommée ou bien elle n'est plus disponible temporairement. Vérifiez l'URL ci-après et assurez-vous qu'elle est correcte.

    URL demandée: /RLT/updatecartitems( 10 ); return false;
    Informations sur la version : Version Microsoft .NET Framework :4.0.30319; Version ASP.NET :4.6.1055.0

    A bientot

  8. #8
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    voici l'action du controller pour que tu voies sa signature. peut-être le problème se trouverait il à ce niveau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public PartialViewResult UpdateCartItems(FormCollection data, SessionModel session,long id,int qty)
            {
              ShoppincartModel modele =new ShoppincartModel();
     
                modele.quantity =qty;
                modele.Id =id;
     
               return PartialView(modele);
            }

  9. #9
    Invité
    Invité(e)
    Par défaut
    A mon avis, il faut remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class="huyt"><a href="updatecartitems( @item.Product.Id ); return false;">modifier</a></td>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class="huyt"><button type="button" onclick="updatecartitems( @item.Product.Id ); return false;">modifier</button></td>

  10. #10
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    Merci bien Tres Cher.
    ca fonctionne super bien.
    que Dieu te bénisse.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/02/2015, 15h34
  2. [2.x] [ExtJS] Autentification des utilisateurs avec AJAX
    Par gawel80 dans le forum Symfony
    Réponses: 1
    Dernier message: 31/08/2012, 09h17
  3. Réponses: 0
    Dernier message: 14/10/2011, 14h32
  4. [AC-2007] Récupérer une saisie utilisateur à l'aide d'un formulaire ou d'une requête
    Par shironeko007 dans le forum VBA Access
    Réponses: 21
    Dernier message: 18/02/2010, 13h17
  5. [batch] récupérer une saisie utilisateur
    Par yelbied dans le forum Windows
    Réponses: 5
    Dernier message: 28/08/2007, 15h34

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