0

所以我从另一个可以工作并在同一页面上使用的函数改编了这段代码。我不知道这是否会对它做任何事情,所以我想我会提到这一点,而且两者都有 id="replace" ,我不知道它是否会干扰。

无论如何,调用该函数的代码是这样的:

 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 感谢您的帮助!

4

2 回答 2

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

你已经通过了,id所以只需使用

var pid = id;

如果您仍然遇到问题,请使用 firebug 或浏览器的开发人员工具来获取实际的 javascript 错误。

于 2012-05-25T19:45:59.527 回答
0

看起来您正在将 this.id 传递给函数,但随后尝试使用该 (x) 来再次查找 id,就好像那是一个 DOM 对象一样。

如果您保留 php 代码原样,您可以将您的 javascript 方法更改为:

url+="?pid="+x;

你可以摆脱:(因为你已经传递了 id 并且不需要检索它)

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

希望对你有用!

于 2012-05-25T19:45:34.737 回答