2014-10-15 2 views
0

PHP 개체를 생성하고 자바 스크립트에서 해당 메서드를 사용할 수 있는지 알고 싶습니다. 예를 들어 , 나는 다음의 PHP 스크립트가 :자바 스크립트에 PHP 개체 전달하기

<?php 
     class Foo 
     { 
      public function bar() 
      { 
       //do something here 
      } 
     } 
?> 

가 그럼 난 서버에 AJAX 요청을 보내고 푸의 인스턴스 잡아 수 : 내가해야 물론

$.ajax({ 
    type: "POST", 
    url: "path/to/Foo/Foo.php", 
    data: { 
     action: "get-object" 
    }, 
    dataType: 'json', 
    success : function(data){ 
     alert("My Foo object: "+data); 
    }, 
    error : function(XMLHttpRequest, textStatus, errorThrown) { 
     alert("Did not work"); 
    } 
}); 

을 Foo 클래스의 인스턴스를 반환하도록 Foo.php를 약간 확장하십시오.

나는 그것을 시도하고 그것이 작동하지 않았다, 내 데이터 변수는 항상 비어 있습니다.

PHP 클래스의 인스턴스를 가져 와서 자바 스크립트에서이 메서드를 호출하는 또 다른 방법이 있습니까?

+1

php.net> json_encode> ** 신중하게 읽어보십시오 **. –

+0

'Foo'라는 JS 클래스가 있습니까? 데이터 구조는 프로그래밍 언어간에 전송 될 수 있지만 같은 방식으로 메소드를 전달할 수는 없습니다. –

답변

0

PHP 코드는 서버에서만 실행할 수 있으므로 JavaScript에서 메소드를 호출 할 때마다 서버에 새 HTTP 요청을 만들어야합니다.

이렇게하면 여러 요청에 걸쳐 개체를 유지해야합니다. 세션 변수에 저장하여이를 수행 할 수 있습니다 (먼저 명시 적으로 직렬화해야 할 수도 있음).

  • 는 PHP 객체
  • 에서 데이터를 추출 자바 스크립트
  • 을 사용하여 클래스를 구현할
  • 자바 스크립트 구성 클라이언트에 데이터를 보내


    다른 방법은하는 것 데이터의 객체

  • 해당 JavaScript 객체의 메소드 호출

분명히이 방법은 클라이언트 측 JS로 달성 할 수있는 방법 (또는 더 많은 Ajax 포함)을 수행하는 경우에만 작동합니다.

+0

차갑고, 도와 줘서 고마워. :) – enne87

관련 문제