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 :

[jQuery 2X]Passer les clés/valeurs d'un tableau en param d'une requête AJAX


Sujet :

AJAX

  1. #1
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut [jQuery 2X]Passer les clés/valeurs d'un tableau en param d'une requête AJAX
    Bonjour,

    je ne sais pas trop pourquoi je galère sur une problématique toute simple pour valider certaines données saisies dans un formulaire.

    J'ai n valeurs à récupérer dans un formulaire donné : aucun problème là dessus. J'ai donc un array qui contient une clé/valeur.

    Sauf que l'attribut data envoyé dans la requête requiert un objet et non un tableau, comment s'y prendre.

    Je suis sur que je vais me dire que c'était tout simple une fois la solution trouvée mais j'ai le chic de complexifier un problème simple.

    Merci d'avance.
    Exprimer une différence d'opinion vaut mieux que :

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 952
    Points : 44 072
    Points
    44 072
    Par défaut
    Bonjour,
    as tu regardé du coté de jQuery.serialize()

  3. #3
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Oui, sauf que la fonction serialize fonctionne sur un formulaire et non sur un tableau.

    C'est justement la partie la plus compliquée à gérer, si je fais ça, je vais me retrouver avec un tas de valeurs dont je n'ai pas besoin.

    Pourquoi ? Le formulaire pointe vers un index.php qui fait tout un tas de trucs, pas uniquement de traiter les données dont j'ai besoin.

    Quand au contenu de ce fichier index.php, je préfère ne pas y penser, je déprime déjà et on est que lundi après midi. Du PHP à l'ancienne sans MVC et des includes partout, c'est juste horrible.

    Des solutions alternatives ?
    Exprimer une différence d'opinion vaut mieux que :

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 952
    Points : 44 072
    Points
    44 072
    Par défaut
    J'ai donc un array qui contient une clé/valeur.
    • comment récupères tu ces données ?
    • comment se présente ces données ?

  5. #5
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Sur un événement blur().

    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
     
    $('.valeurs').blur(function()
    {
    	var listeValeurs = [];
     
    	$('.valeurs').each(function()
    	 {
    	    if ( this.value.length > 0 )
    	    {
    	        var valeurId = this.getAttribute("id").split("_")[1];
    	        var valeurVal = this.value;
     
    	        listeValeurs[ valeurId ] = valeurVal;
     
                    /* Appel AJAX... */
                }
             }
    La raison du est que l'ID de l'input en question est sous la forme valeur_ABC, valeur ABCDEF.... et que ce qui m'intéresse comme clé est la donnée qu'il y a après l'underscore.

    C'est clair ?
    Exprimer une différence d'opinion vaut mieux que :

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 952
    Points : 44 072
    Points
    44 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var listeValeurs = []; // déclaration d'un Array
    //...
    // et plus loin
    listeValeurs[ valeurId ] = valeurVal;
    initialise/utilise directement un objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var listeValeurs = {}; // déclaration d'un Object
    //...
    // et plus loin
    listeValeurs[ valeurId ] = valeurVal;

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/10/2015, 11h21
  2. [AJAX] Récupérer les clés d'un json après une requête ajax
    Par Nico_SAS dans le forum jQuery
    Réponses: 4
    Dernier message: 25/06/2014, 14h18
  3. [PHP 5.2] Rétablir les clés numériques d'un tableau
    Par qwertyu dans le forum Langage
    Réponses: 2
    Dernier message: 18/10/2009, 19h17
  4. [Débutant] Utilisation d'une valeur de la zone de texte dans une requête
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 13/07/2006, 10h42
  5. Réponses: 3
    Dernier message: 08/12/2005, 02h42

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