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 :

Faut-il réinitialiser les données data ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut Faut-il réinitialiser les données data ?
    Bonjour

    Sur un formulaire, j'utilise la méthode data() de jquery pour associer diverses données à chaque tr d'un table.

    Ce table est mis à jour selon certains filtres.

    Au moment de cette mise à jour, je remplace tous les tr et je fais à nouveau une opération d'association avec data(). Avant cette mise à jour, faut-il faire une opération spéciale pour "nettoyer" la mémoire des anciennes données associées ?

    Papy !

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Bonjour,

    oui de préférence si vous voulez partir sur de nouvelles bases.

    Car la version 1.4.2 de jQuery se contente d'effacer les données d'une .data() si vous affectez une nouvelle valeur, par contre la version 1.4.3 de jQuery aura un comportement différent, à savoir qu'elle va étendre les anciennes data avec la nouvelle que vous allez affecter.

    Donc, pour être sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("votreForm").data("<identifiant>", null);
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Je vais faire ça.

    Merci pour cette réponse claire et précise

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    arf ... une question subsidiaire qui vient en relisant mon code:

    Actuellement, j'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $('table#resultats tbody').html(t.toString());
    $('table#resultats').show();
     
    // Enregistrement à la ligne des valeurs supplémentaires
    var p = 0;
    $('table#resultats tbody tr').each(function(){
        $(this).data({
            id_1    : valeurs[p][0],
            id_2    : valeurs[p][1],
            id_3    : valeurs[p][2],
            });
    })
    Pour le réinitialisation, est-ce que je peux faire ma chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $('table#resultats tbody tr').each(function(){
        $(this).data({
            id_1    : null,
            id_2    : null,
            id_3    : null,
            });
    })
    ou faut-il que je passe une ligne pour chaque identifiant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('table#resultats tbody tr').data('id_1', null);
    $('table#resultats tbody tr').data('id_2', null);
    $('table#resultats tbody tr').data('id_3', null);

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Ah, je crois que j'ai mal compris, je pensais que vous veniez vos data sur un <form> et non directement sur vos <tr>...

    Dans ce cas, pas besoin de remettre à null.

    Un exemple :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <table>
        <tbody id="me">
            <tr id='metoo'>
                <td>a</td>
            </tr>
        </tbody>
    </table>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Rajout des data
    $("tr#metoo").data("id", 1);
    // Renvoie donc 1
    $("tr#metoo").data("id");
     
    // Suppression de la cellule
    $("tbody#me").empty();
     
    // On rajoute une nouvelle cellule
    $("tbody#me").append("<tr id='metoo'><td>a</td></tr>"); 
     
    $("tr#metoo").data(); // NULL, aucune data :)


    P.S: pour affecter $.data() on est toujours obligé de boucler sur tous les éléments de tableaux.
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Je m'étais peut-être mal exprimé. J'aurais du mettre un exemple dans ma première question.

    Merci !

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

Discussions similaires

  1. historiser les données dans un data warehouse
    Par hanadi_09 dans le forum Conception/Modélisation
    Réponses: 1
    Dernier message: 04/06/2010, 17h55
  2. Réponses: 105
    Dernier message: 01/04/2010, 16h08
  3. Réponses: 2
    Dernier message: 08/05/2009, 18h00
  4. Réponses: 1
    Dernier message: 17/05/2007, 12h29
  5. récuperer les données de la fonction data arrival
    Par johnson95 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/06/2006, 10h35

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