PHP에 관한 한 (또는 실제로는 웹 서버) HTML 페이지는 큰 문자열보다 복잡하지 않습니다.
데이터베이스와 웹 서비스에서 읽는 PHP와 같은 언어로 할 수있는 모든 멋진 작업-궁극적 인 최종 목표는 정확히 동일한 기본 원칙입니다 : HTML * 문자열 생성.
큰 HTML 문자열은 웹 브라우저에 의해로드 될 때까지 그보다 특별한 것이 아닙니다. 브라우저 페이지가로드되면 다음 레이아웃, 박스 모델 물건, DOM 생성 및 자바 스크립트 실행을 포함한 다른 많은 것들 - 다른 모든 마법이 발생합니다.
따라서 "PHP에서 JavaScript를 호출"하지 말고 "출력에 JavaScript 함수 호출을 포함"하십시오.
이를 수행하는 방법에는 여러 가지가 있지만 여기에 몇 가지가 있습니다.
PHP 만 사용 :
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
PHP 모드에서 직접 출력 모드로 탈출 :
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
함수 이름이나 그와 비슷한 것을 반환 할 필요가 없습니다. 우선, AJAX 요청을 직접 작성하지 마십시오. 당신은 자신을 힘들게 만들고 있습니다. jQuery 또는 다른 우수한 프레임 워크 중 하나를 얻으십시오.
둘째, AJAX 호출에서 응답을 받으면 이미 JavaScript 코드를 실행 중임을 이해하십시오.
다음은 jQuery의 AJAX로 수행하고 있다고 생각하는 예입니다.
$.get(
'wait.php',
{},
function(returnedData) {
document.getElementById("txt").innerHTML = returnedData;
// Ok, here's where you can call another function
someOtherFunctionYouWantToCall();
// But unless you really need to, you don't have to
// We're already in the middle of a function execution
// right here, so you might as well put your code here
},
'text'
);
function someOtherFunctionYouWantToCall() {
// stuff
}
이제 함수 이름을 PHP에서 AJAX 호출로 다시 보내는 데 어려움을 겪고 있다면 그렇게 할 수 있습니다.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* 또는 JSON 또는 XML 등