복붙노트

PHP에서 JavaScript 함수를 호출하는 방법?

PHP

PHP에서 JavaScript 함수를 호출하는 방법?

PHP에서 JavaScript 함수를 호출하는 방법?

<?php

  jsfunction();
  // or
  echo(jsfunction());
  // or
  // Anything else?

다음 코드는 xyz.html (버튼 클릭시)에서 외부 xyz.js에서 wait ()를 호출하는 코드입니다. 이 wait ()는 wait.php를 호출합니다.

function wait() 
{
  xmlhttp=GetXmlHttpObject();
  var url="wait.php"; \
  xmlhttp.onreadystatechange=statechanged; 
  xmlhttp.open("GET", url, true); 
  xmlhttp.send(null);
} 

function statechanged()
{ 
  if(xmlhttp.readyState==4) {
       document.getElementById("txt").innerHTML=xmlhttp.responseText;
  }
}

and wait.php

<?php echo "<script> loadxml(); </script>"; 

loadxml ()은 같은 방식으로 다른 PHP 파일의 코드를 호출합니다.

그렇지 않으면 loadxml ()이 제대로 작동하지만 원하는 방식으로 호출되지 않습니다.

해결법

  1. ==============================

    1.

    PHP에 관한 한 (또는 실제로 웹 서버 일반적으로) HTML 페이지는 큰 문자열보다 복잡합니다.

    PHP와 같은 언어로 할 수있는 모든 멋진 작업 - 데이터베이스와 웹 서비스 및 모든 것을 읽는 것 - 궁극적 인 목표는 정확히 동일한 기본 원칙입니다. HTML 문자열 생성.

    귀하의 큰 HTML 문자열은 웹 브라우저에 의해로드되기 전까지는 특별한 것이 아닙니다. 브라우저가 페이지를로드하면 레이아웃, 상자 모델, DOM 생성 및 JavaScript 실행을 비롯한 많은 다른 작업이 수행됩니다.

    따라서 "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 호출에서 응답을 받으면 이미 자바 스크립트 코드를 실행하려고한다는 것을 이해하십시오.

    다음은 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 do
            // 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 등

  2. ==============================

    2.

    나는 항상 echo "