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 :

Appeler un id (le id est variable) [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Par défaut Appeler un id (le id est variable)
    Bonsoir,

    Voici mon code,

    Du code HTML :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h3 id="miss"><a href="">Messages</a></h3>
    <div id="lesmessages"></div>

    Le code JS :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    $("#miss").on('click',function(){
     
    	if(timermsg !='') clearTimeout(timermsg);
    	refreshlistmsg();
    });
     
    function refreshlistmsg(){
     
    	jQuery.ajax({
    		type: 'POST', 
    		url:  'controllers/accueil/messages.php', 
    		dataType : 'json',
    		success: function(jsonn) {
     
    			var zzz     = JSON.stringify(jsonn);											
    			var objj    = eval('(' + zzz + ')');
    			var msgajax = '';
    			var iddd    = '';
    			for( var z in objj ) {
     
    				var ligne = objj[z];
    				var idm   = 'msg' + ligne.id;
     
    				msgajax  +='<a href="" id="' + idm + '" return false;">';
     
    				iddd      = "#msg" + ligne.id;				
     
    				$(' " ' + iddd + ' " ').on('click',function(){
     
    					alert('oki');
    					refreshmsg(titi);
    				});
    				msgajax += 'Hello';															
    			}
    			document.getElementById('lesmessages').innerHTML = msgajax;											
    		} 
    	})
    	timermsg = setTimeout("refreshlistmsg()", 20000);		
    }
     
    function refreshmsg(titi){														
    	jQuery.ajax({
    		type: 'POST', 
    		url:  'controllers/accueil/msg.php', 
    		dataType : 'json',
    		data: { id: titi },
    		success: function(json) {
     
    			var xxx  = JSON.stringify(json);														
    			var obj    = eval('(' + xxx + ')');
    			var msgajx = '<ul>';
    			for( var x in obj ) {
    				var ligne = obj[x];
    				msgajx += '<li><div class="amessage"><img src="images/man.jpg" alt="" /><div class="amgcont"><div class="amesshead"><h3>Zinedine Zidane</h3><a>'+ ligne.depot +'</a><a>En ligne</a></div><p class="inpros">'+ ligne.msg +'</p></div></div></li>';
    			}
    			msgajx += '</lu>';
    			document.getElementById( "msgajax" ).innerHTML = msgajx;															
    		} 
    	});
    	timer = setTimeout("refreshmsg(titi)", 20000);
    }
    Mon soucis est dans la ligne 28:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(' " ' + iddd + ' " ').on('click',function(){
    Ce que je veux en fait, est exécuter une fonction au moment ou je clique sur le lien qui a comme id : iddd= "#msg" + ligne.id;

    Et comme vous l'avez constaté iddd varie,

    Le code comme il est m'affiche l'erreur : Error: Syntax error, unrecognized expression: " #msg16 "

    sachant que 16 est l'id récupérer depuis la base.

    Merci :-)

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Et... Ils sont censés servir à quoi, les guillemets autour de iddd ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Mets une class commune au lieu des ids.
    Et id dans un attribut (data par ex.) si tu as besoin de le récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     '<a href="" class="msg" data="'+ligne.id+'">';
    $(".msg").on(......
    N.B. Tu mixes aussi du JavaScript pur avec du jQuery ?
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('lesmessages').innerHTML = msgajax;
    S'écrit en jQuery :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#lesmessages').html(msgajax);
    Dernière modification par Invité ; 08/11/2013 à 09h22.

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(' " ' + iddd + ' " ')
    Là, tu demandes de récupérer les éléments dont l'id est (si iddd vaut foo) : " foo " et non ceux dont l'id est foo...
    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

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    si c'est un id ... => #

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(' # ' + iddd ).on('click',function(){
    $ attend juste un string de selecteur

    en temps normal tu aurais ecrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(' #monid').on('click',function(){
    il ne faut donc pas aller chercher midi à 14 heures ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mavar="monid";
    $(' # ' + mavar ).on('click',function(){
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Invité
    Invité(e)
    Par défaut
    @SpaceFrog
    Je pense que tu n'as pas bien lu son script : le # s'y trouve bien
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    iddd      = "#msg" + ligne.id;
    Comme l'a dit Bovino, la syntaxe correcte est :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    $( iddd ).on('click',function(){
    Il me semble néanmoins que passer par une class est plus judicieux (cf mon message précédent).

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    si le # y est ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mavar="monid";
    $( mavar ).on('click',function(){
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/01/2007, 13h11
  2. Appel d'un package avec DBLink variable ?
    Par zorglob dans le forum Oracle
    Réponses: 2
    Dernier message: 17/02/2006, 17h11
  3. Réponses: 13
    Dernier message: 15/11/2005, 15h47
  4. Réponses: 4
    Dernier message: 31/10/2005, 17h48
  5. Appel de procédure par contenu de variable
    Par lil_jam63 dans le forum Langage
    Réponses: 9
    Dernier message: 13/09/2004, 08h05

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