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 :

Requête AJAX non exécutée [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Requête AJAX non exécutée
    Bonjour a tous,

    Je travail sur un site en MVC3.
    J'ai plusieur froms dans ma page.
    Ils sont différenciés par un id different.
    Losrque j'en valide un je passe dans cette fonction:
    Code js : 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
       function SendPost(id) {
          AllInputs = $("input[class^='autoC instance-" + id + "']");
          CheckBox = document.getElementById("CheckBox" + id);
          jQuery.each(AllInputs, function () {
             if (this.value != "")
                Agents.push(this.value);
          });
          if (Agents.lenght == 0)
             Agents.push("");
          alert("Aha ?"); // Executé
          $.ajax({
             type: "POST",
             cache: false,
             url: "Home/DetailBot",
             data: { agents: Agents, id: id, Night: CheckBox.checked }
          });
          alert("Oho ?"); // Non executé
       }
    La requete ajax ne se fait pas.
    Merci pour toute aide.
    Dernière modification par Bovino ; 19/06/2013 à 10h27. Motif: Merci d'éviter la mise en forme dans le code : casse la coloration syntaxique !

  2. #2
    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 : 55
    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
    Dans un premier temps, plusieurs maladresses...
    Tes variables sont déclarées en global (pas d'utilisation de var). Est-ce souhaité ? Utile ?
    A quel moment déclares-tu Agents et que c'est un tableau ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AllInputs = $("input[class^='autoC instance-" + id + "']");
    Quelle est la subtilité de cette syntaxe par rapport à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AllInputs = $("instance-" + id");
    ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Agents.lenght == 0)
    Si Agents est bien un tableau, il ne possède pas de propriété lenght
    Donc Agents.lenght vaut undefined et comme undefined == 0, tu te retrouves au final avec un tableau vide !
    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

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai omis de préciser que toutes mes variables sont définies en dehors de la fonction de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var Agents = [];
    var AllInputs = null;
    var CheckBox = null;
    J'ai appliqué la modification que vous avez suggéré et modifié un peu le code et cela fonctionne comme par miracle.

    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
       var Agents = [];
       var AllInputs = null;
       var CheckBox = null;
       var Data = null;
     
       function SendPost(id) {
          AllInputs = $(".instance-" + id);
          CheckBox = document.getElementById("CheckBox" + id);
          jQuery.each(AllInputs, function () {
             if (this.value != "")
                Agents.push(this.value);
          })
          Agents.push("");
          Data = { agents: Agents, id: id, Night: CheckBox.checked };
          $.ajax({
             url: "Home/DetailBot",
             data: Data,
             type: "POST"
          });
       }

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bon voila j'ai trouvé pourquoi cela s'est mis a fonctionner.
    A savoir que le code que j'ai fournis lors de mon premier post fonctionnait très bien hier.
    C'est ce matin qu'il s'est mis a ne plus fonctionner pour apparement aucune raison.
    Dans ma page j'utilise les datepicker de jQuery UI et j'ai eu le malheur de déclarer (ce matin) une pour récupérer la valeur du datepicker.

    Et il se trouve que tant que cette variable restait dans mon code, rien ne fonctionnait.

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

Discussions similaires

  1. [WD15] requête sql non exécutée ou incompléte
    Par yoonu dans le forum WinDev
    Réponses: 12
    Dernier message: 25/03/2013, 20h04
  2. [AC-2003] Macro avec requête suppression non-exécutée ?
    Par JDev_ dans le forum VBA Access
    Réponses: 5
    Dernier message: 03/08/2012, 10h33
  3. File Upload en GWT : requête POST non exécutée
    Par 7awwet dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 28/07/2012, 22h20
  4. [AJAX] Exécuter 2 requêtes ajax/php.
    Par djalilk dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/10/2007, 11h52
  5. [MySQL] Requête non exécutée
    Par harlock59 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/05/2006, 15h42

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