2012-04-06 3 views
0

Je crée une liste d'images dynamiquement, suivant est le codecomment obtenir id d'image

<?php 
for ($counter = 0; $counter < $obj1->id; $counter ++) 
{ ?> 
<tr><td> Week <?php echo($counter+1); ?> 
</td><td><?php echo" <a href=\"#hiddenDiv\" rel=\"facebox\";>";?> 
<img src="tue.png"/ id="image" value="<?php echo $counter+1;?>" > 
</a></td></tr> 
<?php } ?> 

lorsque l'utilisateur clique sur l'image une forme ouvre. chaque image représente une semaine, donc je dois identifier de façon unique l'utilisateur sur lequel insérer les données. J'ai besoin de l'ID de cette image à travers laquelle je peux identifier une semaine. Le clic à l'image fonction suivante est appelée

function pc(){ 
var temp = document.getElementById("image"); 
alert(temp.value); 
} 

mais je reçois « undefined ». Quelqu'un peut-il m'aider avec ça?

Merci

Merci à l'avance

+0

Vous avez un problème quand vous obtenez l'identifiant devrait être comme cette température var = document.getElementById ("image "); – Altrim

+0

Si vous voulez utiliser l'id passé à la fonction comme l'argument de 'getElementById', alors vous devez perdre les guillemets ...' getElementById (id) '... – keithhatfield

+0

Publiez le code HTML généré, pas le PHP qui génère il. De plus, où est appelée la fonction pc? – j08691

Répondre

-1

vous devez passer id de la balise. comme document.getElementById("image").

function pc(id){ 
var temp = document.getElementById("image"); 
alert(temp.value); 
} 
+2

Comment cela peut-il résoudre quelque chose? L'OP est généré un tas d'images ayant toutes le même ID. Ce problème doit être résolu en premier. – jfriend00

2

Vous remarquerez que j'ai changé l'ID de la balise img, ce qui signifie que chaque nouvelle image aura l'identifiant du contre-courant.

J'ai également ajouté un événement onclick au lien, et transmis le compteur à la fonction js.

<?php 
for ($counter = 0; $counter < $obj1->id; $counter ++) 
{ ?> 
<tr><td> Week <?php echo($counter+1); ?> 
</td><td><?php echo" <a href=\"#hiddenDiv\" onclick=\"pc(<?php echo $counter;?>)\" rel=\"facebox\";>";?> 
<img src="tue.png"/ id="<?php echo $counter;?>" value="<?php echo $counter+1;?>" > 
</a></td></tr> 
<?php } ?> 

En outre, supprimez les guillemets autour de "id" dans votre fonction js:

 

    function pc(id){ 
    var temp = document.getElementById(id); 
    alert(temp.value); 
    } 

+0

Vous devez expliquer ce que vous faites avec les changements de modèle pour générer un identifiant unique pour chaque image. – jfriend00

+0

bon point, une seconde et je vais mettre à jour. –

+0

juste pour rendre les choses faciles je fais cela et dans la fonction JS je fais ceci fonction pc() { var temp = document.getElementById ("image"); alerte (temp.value); } il ne fonctionne toujours pas – talhaMalik22