私は、グループを作成する機能を持つ基本的なソーシャルネットワークサイトを構築しています。保留中のメンバーを辞退または承認するこの小さなコードを除いて、すべてのコードは完全に機能します。次のPHPコードは、特定のグループ内の保留中のメンバーのリストが表示されます。Ajaxコードが実行されていません
if (in_array($_SESSION['username'],$moderators)){
$addMembers = "Pending members";
for($x=0;$x<$pend_count;$x++){
$addMembers .= '<a href="'.$pending[$x].'">'.$pending[$x].'</a>';
$addMembers .= '<button onclick="approveMember('.$pending[$x].')">Approve</button>';
$addMembers .= '<button onclick="declineMember('.$pending[$x].')">Decline</button>';
}
}
のonclickイベントは、次のJSスクリプトをトリガする必要があります。
function approveMember(u){
var ajax = ajaxObj("POST", "php_parsers/group_parser.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
var datArray = ajax.responseText;
if(datArray == "member_approved"){
alert ("Member approved!");
}
}
}
ajax.send("action=approve_member&u="+u);
}
function declineMember(u){
var ajax = ajaxObj("POST", "php_parsers/group_parser.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
var datArray = ajax.responseText;
if(datArray == "member_declined"){
alert ("Member Declined");
}
}
}
ajax.send("action=decline_member&u="+u);
}
AJAXコードはバックグラウンドでPHPスクリプトを実行しますメンバーを承認/拒否し、 'member_approved'または 'member_declined'という応答を返します。これにより、JSでアラートがトリガーされます。
これらのapproveMember()およびdeclineMember()を除いて、正常に動作しているAJAXコードを実行するために、これらのonclickイベントトリガーが約10個あります。彼らは私のJSスクリプトを起動させたくないので、なぜそれを見つけることができません。私は問題がバックグラウンドで実行されるべきPHPスクリプトにないと確信しています。
ウェブデベロッパーコンソールにエラーがあります。ボタンがフォームを送信しない場合は、それが原因ですか? – epascarello
jqueryを使用している場合は、なぜreadystatechangeをチェックしていますか?なぜjquery.ajax/jquery.get/etc ...の代わりに独自のajaxコードを使用しているのですか? –