我正在建立一個基本的社交網站,並創建了一個功能組。我的所有代碼都能正常工作,除了這部分拒絕或批准待處理成員的代碼外。下面的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中觸發一個警報。
現在,我有大約10個這些onclick事件觸發器來執行一些AJAX代碼,除了這些approveMember()和declineMember(),它們都工作正常。他們只是不想觸發我的JS腳本,我找不到原因。我相信這個問題不在應該在後臺執行的PHP腳本中。
我敢打賭,Web開發者控制檯中存在錯誤。如果不是按鈕提交表單,那是原因嗎? – epascarello
如果你使用jQuery,你爲什麼要檢查readystatechange?你爲什麼要滾動自己的ajax代碼而不是使用jquery.ajax/jquery.get/etc ...? –