정답
백엔드 서버 코드는 없습니다. 여기서는 stackexchange의 훌륭한 설명입니다.
먼저, 함께 작동하는 세 가지 언어가 있다는 것을 이해하십시오.
- PHP : 서버에서만 실행되며 링크 클릭 (GET) 또는 제출과 같은 요청에 응답합니다. 양식 (POST).
- HTML & JavaScript : 누군가의 브라우저에서만 실행됩니다 (NodeJS 제외).
파일이 다음과 같다고 가정합니다. :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
PHP는 요청에만 응답하기 때문에 (GET, $ \_REQUEST를 통한 POST, PUT, PATCH 및 DELETE), 동일한 파일에 있더라도 PHP 함수를 실행해야하는 방법입니다. 이렇게하면 "이 사용자를 위해이 스크립트를 실행해야합니까?"라는 보안 수준이 제공됩니다.
페이지를 새로 고침하지 않으려면 다음을 통해 새로 고침하지 않고 PHP에 요청할 수 있습니다. AJAX (Asynchronous JavaScript and XML)라는 메서드입니다.
YouTube에서 찾아 볼 수 있습니다. "jquery ajax"를 검색하면됩니다.
인용에 대한 전체 링크 :
Answer
이 작업을 수행하는 가장 좋은 방법은 서버 측 앱의 컨트롤러를 통해 PHP 함수를 사용할 수 있습니다. 그러면 자바 스크립트가 Axios와 같은 라이브러리를 사용하여 메서드를 호출 할 수 있습니다. 아마도 다음과 같이 보일 것입니다 (Laravelish 예제) :
//HTML
//JS
var handleClick = function(event) {
axios.get("/endpoint, {
params: {ID: 1234}
})
.then(function(response) {
});
};
//PHP
namespace \App\Http\Controlllers;
use \App\Thing;
use \App\Http\Controllers\Controller;
class ThingController extends Controller
{
public function show($id)
{
return Thing::find($id);
}
}
?>
/ endpoint의 백엔드에 HTTP 요청을 시작합니다. 라우터는`ThingController @ show` 메소드로 라우팅해야합니다.이 요청은 데이터베이스에서로드 된 데이터 또는 전달하려는 데이터를 반환합니다.
이것은 당신이 적절하다고 생각하는대로 당신의 JS에 의해 처리 될 호출의 데이터를 반환 할 것입니다.