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) を使用して、DOM オブジェクトであるかのように id を再度検索しようとしています。

PHPコードをそのままにしておく場合は、JavaScriptメソッドを次のように変更できます。

url+="?pid="+x;

そして、あなたは取り除くことができます:(あなたはすでにIDを渡しているので、それを取得する必要はありません)

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

それがうまくいくことを願っています!

于 2012-05-25T19:45:34.737 に答える