2012-05-25 5 views
0

J'ai donc adapté ce code à partir d'une autre fonction qui fonctionne et qui est utilisée sur la même page. Je ne sais pas si cela pourrait faire quelque chose, alors j'ai pensé que je mentionnerais cela, et aussi que les deux ont id = "remplacer" en eux, que je ne sais pas si cela pourrait interférer.javascript La fonction onclick ne fonctionne pas

Quoi qu'il en soit, le code pour appeler la fonction est la suivante:

if (mysql_num_rows($LIKE) != 0) 

{ 

    echo " 
     <td id=\"replace\" style=\"text-align:left\">".$like." Likes -- <a style=\"color:#234904\" onmouseover=\"this.style.color='#6666CC'\" onmouseout=\"this.style.color='#234904'\" id=\"" . $POST->id . "\" onclick=\"likePost(this.id)\" name=\"like\">Like This Post</td> 
     "; 
} 

la fonction javascript est défini comme ceci:

var xmlHttp; 

function likePost(x) 
{ 
xmlHttp=GetXmlHttpObject(); 
if (xmlHttp==null) 
{ 
alert ("Browser does not support HTTP Request"); 
return; 
} 

var pid = document.getElementById(x).id; 
var url="forum-like.php"; 
url+="?pid="+pid; 
url+="&sid="+Math.random(); 
xmlHttp.onreadystatechange=stateChanged; 
xmlHttp.open("GET",url,true); 
xmlHttp.send(null); 
} 

quand je clique sur ce qui doit appeler la fonction, rien ne se passe. Si j'exécute le script en utilisant la page php appelée dans la fonction js, cela fonctionne bien ... Je ne sais pas si j'ai manqué quelque chose ou quoi que ce soit qui ne va pas ... Je sais aussi que la partie $ POST-> id Appelle le bon identifiant ... j'espère que c'est assez d'infos, sinon faites le moi savoir et je modifierai en plus: D Merci pour toute aide!

+0

Ouvrez Firefox + Firebug. Ouvrez l'onglet NET et regardez votre demande/réponse. –

Répondre

0

Il semble que vous passez this.id à la fonction, mais essayez ensuite d'utiliser (x) pour rechercher à nouveau l'ID comme s'il s'agissait d'un objet DOM.

Si vous laissez le code php tel quel, vous pouvez simplement changer votre javascript méthode pour dire:

url+="?pid="+x; 

Et vous pouvez vous débarrasser de: (puisque vous êtes déjà passer les id et ne nécessitent pas pour le récupérer)

var pid = document.getElementById(x).id; 

Espérons que cela fonctionne pour vous!

1
var pid = document.getElementById(x).id 

Vous êtes déjà passer le id donc il suffit d'utiliser

var pid = id; 

Si vous rencontrez toujours des problèmes, puis utilisez les outils Firebug ou développeur de votre navigateur pour obtenir le véritable erreur javascript.

+0

Je pense qu'il a besoin de cela, parce que la fonction javascript est appelée dans un document distinct qui est appelé à partir de l'en-tête de la page où il s'appelle? Pas sûr ... aussi, je viens de trouver qu'il semble enregistrer la fonction, mais j'ai besoin de rafraîchir la page pour qu'elle se mette à jour ... – Elizabeth

+1

Elizabeth, si vous ne pouvez pas changer la fonction js alors changez simplement votre php pour qu'il ne passe pas (this.id), mais plutôt juste (this). – christurnerio

+0

!! Ça a marché! Sauf qu'il semble interférer/se mélanger avec l'autre fonction javascript en utilisant id = replace ... que possible? – Elizabeth

Questions connexes