id de l'image cliquee

Mammouth du PHP | 725 Messages

07 mars 2012, 13:15

Bonjour,

J'ai ce bout de code:

un lien dans une page, chacun a son propre id:
echo '<a class="embedLike" id="embedLike'.$id.'" style="cursor: pointer;" />';
echo '<br />';
echo '<div class="displayError'.$id.'" /></div>'; // emplacement d'affichage du resultat
jQuery
  $('a.embedLike').click(function(){
        
        var dataString = $('form.hiddenFieldFrm').serialize();
        var clickedItem = $(this).attr('id'); // le lien clique
        console.log(clickedItem);
        
        $.ajax({
        success: function(data) {
        	
        	
        		if(data.error == 1)
        		{
        			$('div.displayError'+clickedItem)
        			
        			
comment puis je recuperer l'identifiant, sous forme de chiffre pour le place au div avec class displayError.

exemple HTML
<a class="embedLike" id="embedLike12345" style="cursor: pointer;" />
<br />
<div class="displayError12345" /></div>
afficher l'erreur dans sa place appropriee suivant l'id

merci pour votre aide

Eléphant du PHP | 83 Messages

08 mars 2012, 22:52

Bonsoir,

Normalement il faut revoir votre logique d'identification mais dans ton cas actuel, si chaque "id" est de cette forme :

Code : Tout sélectionner

id="embedLike'.$id.'"
ou la variable "$id" est numérique et si chaque id contient la chaine de caractère "embedLike" alors une manière possible est de faire comme suit :

Code : Tout sélectionner

Utilise la fonction split. Par exemple, a=id.split('e'). Si id="embedLike12345", a[0]="embedLik" a[1]=12345
bon c'est pas l'idéale mais si toutes les conditions sont remplies le code fonctionnera sans problème.

Bon travail,

Mammouth du PHP | 725 Messages

10 mars 2012, 06:42

merci j'ai trouve aussi replace

ViPHP
ViPHP | 1996 Messages

11 mars 2012, 14:03

S'il est le que numérique, récupère le avec des Regex.
Essaye cela (pas testé)
$('a.embedLike').click(function(){
       var exp = new Regex ('embedLike([0-9]+)$','g');
        var dataString = $('form.hiddenFieldFrm').serialize();
        var clickedItem = $(this).attr('id'); // le lien clique
        if (exp.test(clickedItem))
        {
            var tableau = exp.exec(clickedItem);
            alert (tableau[1]);
        }
...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 725 Messages

12 mars 2012, 05:23

merci Aureusms, c'est interessant, j'ai pas compris cette ligne:
       var exp = new Regex ('embedLike([0-9]+)$','g');

ViPHP
ViPHP | 1996 Messages

12 mars 2012, 12:13

Bonjour,

Un Regex (ou REGular EXpression (expression régulière)) te permet de créer un masque de variable.
Les expressions régulières sont assez puissantes mais difficile à expliquer en quelques lignes .
Dans notre cas :
embedLike([0-9]+)$
permettra de vérifier les variables contenant embedLike et se terminant par un chiffre allant de 0 à l'infini. Les parenthèses sont là pour "capturer" le chiffre si et seulement si le masque est validé.
Ensuite tu lance la validation par
 exp.test(clickedItem))
. Et si cela est validé tu récupère ce qui est dans la parenthèses par
var tableau = exp.exec(clickedItem)
La récupération est toujours avec la position :
0 = avec la variable complète
1 = première parenthèse capturante
2 = deuxième parenthèse capturante,
...

Enfin pour finir avec

Code : Tout sélectionner

var exp = new Regex ('embedLike([0-9]+)$','g');
remarques tu le 'g' à la fin ? Il permet de faire la recherche en mode dit global (je le mets toujours par défaut). Si tu voulais que le masque respecte la Casse, il faudrait ajouter l’option 'i' ce qui donnerait :

Code : Tout sélectionner

var exp = new Regex ('embedLike([0-9]+)$','gi');
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 725 Messages

13 mars 2012, 12:00

merci Aureusms