본문 바로가기
MySql

MySQL 워드 프레스 테마에 아약스를 추가하는 방법

by 베이스 공부 2021. 2. 11.
반응형

나는 지금 며칠 동안 붙어있는 문제가 있습니다 ... 간단한 ajaxPOST 함수를 사용하여 데이터를 MySQL 데이터베이스 (WP 데이터베이스가 아님)로 보내려고합니다.

이 코드는 모든 게시물 전에 확인해야하므로 테마의 "single-post.php"내에 있습니다.

$.ajax({ url: 'library/functions/admin_checkuser.php',
     data: {action: userID},
     type: 'post',
     success: function(output) {
                  alert(output);
     }
});

저는 단순히 "admin_checkuser.php"스크립트에 변수를 보내고 데이터베이스에서 작업을 수행하는 다른 스크립트를 호출합니다.

다음은 "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();

}

그러나 나는 호출이 대본을 거치지 않는다고 생각합니다. These scripts where tested outside of WordPress and did work, so it must be something in WordPress that blocking the ajax call. BTW, 나는 많은 다른 폴더에 "admin check user.php"를 배치하려고 시도했지만 아무것도 작동하지 않았습니다.

미리 감사드립니다.

 

해결 방법

 

ajax 호출에 대한 URL을 확인해야합니다.

상대 URL 대신 전체 URL을 사용할 수 있습니다.

테마의 위치로 인해 URL이 잘못되었을 수 있습니다. ajax 코드가 테마 폴더에 있다고 가정합니다.

테마 디렉토리를 가져 오는 일부 워드 프레스 기능이 있습니다.

예를 들어 http : // yourwebpage / test / 페이지에있는 경우 ajax 호출은 여기 http : //yourwebpage/test/library/functions/admin_checkuser.php . 이것은 잘못된 위치라고 가정합니다.

이것이 스크립트에 절대 URL을 추가해야하는 이유입니다. 테마에있는 경우이 메서드 get_template_directory_uri () 를 사용하여 템플릿 디렉토리를 가져올 수 있습니다.


 

참조 페이지 https://stackoverflow.com/questions/10589018

 

 

반응형

댓글