2012-05-25 63 views
0

所以我改编自该做的工作,并在同一页面上使用其他的功能的代码。我不知道这是否能对它做任何事情,所以我想我会提及这一点,并且它们中都有id =“replace”,我不知道它是否会干扰。的JavaScript的onclick功能不能正常工作

反正代码来调用该函数是这样的:

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> 
     "; 
} 

JavaScript函数的定义是这样的:

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); 
} 

当我点击我应该调用的函数,没有任何反应。如果我使用js函数中调用的php页面执行该脚本,那么工作正常,但是...我不知道是否错过了任何东西或错误,尽管...我也知道$ POST-> id部分确实呼叫正确的ID ...希望这是足够的信息,否则让我知道,我会编辑更多:D感谢您的任何帮助!

+0

打开Firefox + Firebug。打开NET选项卡并查看您的请求/响应。 –

回答

0

看起来你是路过this.id的功能,但随后尝试使用(X)来然后再查找该ID好像这就是一个DOM对象。

如果离开了PHP代码的是,你可以改变你的JavaScript方法说:

url+="?pid="+x; 

而且你可以摆脱:(因为你已经通过ID和不需要检索它)

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

希望能为你工作!

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

您已经传递了id因此就使用

var pid = id; 

如果您仍然有问题,然后使用萤火虫或浏览器的开发者工具,以获得实际的JavaScript错误。

+0

尽管我认为它需要,因为JavaScript函数是在一个单独的文档中调用的,该文档是从调用页面的页眉调用的?不知道...还有,我刚刚发现,它似乎册的功能,但我需要刷新页面来更新... – Elizabeth

+1

伊丽莎白,如果你不能改变js函数然后就改变你的PHP不会传递(this.id),而只是(this)。 – christurnerio

+0

!!这工作!除了它似乎干涉/混合其他JavaScript功能使用id = replace ...可能吗? – Elizabeth