Tôi gặp sự cố mà tôi gặp phải trong một ngày ... Tôi đang cố gắng sử dụng hàm ajaxPOST đơn giản để gửi dữ liệu đến cơ sở dữ liệu MySQL (không phải cơ sở dữ liệu WP).Cách thêm ajax vào chủ đề wordpress
Mã này nằm trong "single-post.php" trong chủ đề, vì nó phải được kiểm tra trước mỗi bài đăng.
$.ajax({ url: 'library/functions/admin_checkuser.php',
data: {action: userID},
type: 'post',
success: function(output) {
alert(output);
}
});
Tôi chỉ cần gửi biến cho tập lệnh "admin_checkuser.php" mà lần lượt gọi một tập lệnh khác thực hiện hành động trên cơ sở dữ liệu.
Đây là mã cho "admin_checkuser":
$userid = $_POST['action'];
echo $userid;//for testing
$oMySQL = new MySQL();
$query = "Select * FROM videotable WHERE uid = '$userid'";
$oMySQL->ExecuteSQL($query);
$bb = $oMySQL->iRecords;
$aa = $oMySQL->aResult;
echo $bb;
if ($bb == 0){
$query = "INSERT INTO videotable VALUES ('','$userid','true')";
$oMySQL->ExecuteSQL($query);
echo 'true';
exit();
}else{
$sharing = mysql_result($aa,0,"share");
echo $sharing;
exit();
}
Nhưng tôi không nghĩ rằng các cuộc gọi đi qua kịch bản. Các tập lệnh này được kiểm tra bên ngoài WordPress và đã hoạt động, vì vậy nó phải là một cái gì đó trong WordPress chặn cuộc gọi ajax. BTW, tôi đã thử đặt "admin_checkuser.php" trong nhiều thư mục khác nhau nhưng không có gì hoạt động.
Xin cảm ơn trước.
Sử dụng một cái gì đó như tab mạng của Firebug hoặc HTTPFox để xem liệu cuộc gọi ajax có thực sự xảy ra hay không hoặc xem nhật ký truy cập của máy chủ của bạn. –