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 :

Interprèter des éléments importés par ajax


Sujet :

jQuery

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Points : 64
    Points
    64
    Par défaut Interprèter des éléments importés par ajax
    Bonjour à tous,

    Je découvre Jquery depuis peu et je ne saisis pas totalement la logique.
    Notamment sur la façon dont il peut interpréter l'import de nouveaux éléments dans le DOM, par la requête ajax.

    J'essaie de rendre une mini messagerie plus fluide et j'y introduis donc Jquery pour ajouter des messages ou les modifier sans rechargement de page.

    Voilà le scénario :
    Lorsque je souhaite modifier un message, je passe par une requête ajax en jquery qui va aller chercher le message concerné en base de données et le retourner dans un textarea avec un bouton (image) pour validation. Ces nouveaux éléments prennent place dans la page par l'attribut html() de la fonction ajax de Jquery.
    Jusqu'ici no problemo. (cf photo).

    Nom : message.JPG
Affichages : 87
Taille : 22,9 Ko

    Mon problème :
    Comment faire pour que la fonction "clik" de ce nouveau "bouton modifier" de soumission du textarea, importé dans le DOM, puisse soumettre le contenu tapé dans le textarea lui aussi fraichement importé dans le DOM.
    D'après mon constat Jquery ne gère que le DOM lors du chargement de la page ? (je débute hein !).

    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
     
    	$('img#bt_modifier').click(function() {
    		var parentId = $(this).closest("tr").attr("id");
    		var modMessage = $(this).closest("textarea").val();
    		// appel ajax :
    		$.ajax({
    			url: 'modules/mailbox3.php',
    			type: 'post',
    			data: 'id=' + parentId + '&message=' + modMessage + '&cmd=enrgModifier',
    			dataType: 'html',
    			success: function(code_html, statut){
    				$('tr#'+parentId+' td.max').html(code_html);
    			},
    		});
    	}
    En gros si j'ai bien compris, ceci ne marche pas car "img#bt_modifier" n'est pas connu de Jquery car importé après chargement :

    Autrefois je passais par des requête Ajax en javascript basic qui faisaient le job sans difficulté avec onClik, onBlur par le biais de fonctions...
    Mais je pense que Jquery a une autre approche, plus simple et plus rapide...

    Dites moi si je fais fausse route et par la même occasion si vous avez des références de bouquins pour appréhender Jquery façon débutant je suis preneur.

    Merci !

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Points : 64
    Points
    64
    Par défaut
    Bonjour danielhagnoul et merci de m'avoir mis sur la piste du on().
    Je me suis paluclhé la doc et... j'ai changé d'approche : je place l'évènement non plus sur le bouton (click) mais sur le fait de quitter le textarea (blur) ce qui du coup à le mérite de faciliter la récupération de son contenu alors connu de Jquery...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	$('table tbody tr').on('blur', 'textarea', function() {
    		var modMessage = $(this).val();
    		... on lance l'ajax pour modifier l'entrée en base de données.
    	});
    ... mais j'ai pas l'esprit tranquille, je pense que je suis passé à côté de ton histoire de double sélecteur ?
    Et ça me tarabiscote !! Mon bouton est juste là pour faire joli, pour que pas perturber l'usager !

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Je ne connais pas votre HTML, donc je donne un exemple.

    Si la table (statique) a l'ID "maTable" et le bouton al'ID "btnModifier" (code dynamique), alors : $( "#maTable" ).on( "click", "#btnModifier", function( event ){ console.log( event.target, this ); });.

    Si le tag table n'est pas statique, on peut se raccrocher au "body" : $( "body" ).on( "click", "#btnModifier", function( event ){ console.log( event.target, this ); });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Interprétation des balises html par word
    Par plante20100 dans le forum Word
    Réponses: 8
    Dernier message: 25/10/2014, 18h47
  2. Réponses: 4
    Dernier message: 22/08/2012, 11h37
  3. [JAXB] Problème lors de la validation des éléments importés
    Par l'index dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 11/05/2012, 16h37
  4. Réponses: 0
    Dernier message: 27/05/2010, 18h15
  5. interprétation des données retournées par leastsq
    Par yonsi dans le forum Calcul scientifique
    Réponses: 0
    Dernier message: 08/06/2009, 19h59

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