2017-01-27 1 views
0

PHP 프로젝트에서 AJAX 기술을 사용하고 싶습니다. 저는 AJAX 요청과 단순히 응답에 익숙합니다. "1"(사용자는 "2"가 존재합니다 (사용자가 존재하지 않습니다))와 같은 단순한 대답 만 제공됩니다. 이러한 경우를 처리하는 데는 아무런 문제가 없습니다. .. 예를 들어, jQuery를의 사용과 응답 템플릿을 사용하여 PHP에서 AJAX 응답을 HTML 코드로 준비하는 방법

그러나 어떤 경우에는 내가 페이지의 큰 부분을 다시 렌더링 강제 더 복잡한 반응을, 가정

내가 아이디어를 다음의 한 방법을 수행하는 :

  1. 서버 측 스크립트의 응답으로 JSON 데이터를 사용하고 클라이언트에서 jQuery를 사용하여 JSON 데이터를 처리합니까?

  2. 렌더링 전체 HTML 코드 사용 서버, AJAX 요청에 대한 응답으로 클라이언트에게 보내 단순히 ajax 호출의 "성공"부분에서 처리 할 수 ​​있습니까?

복잡한 요청에 대해 서버에서 응답을 준비하는 가장 좋은 방법은 무엇입니까? 나는 옵션 2를 사용하고 싶습니다)하지만 난 다음 구문을 피하기 위해 싶습니다 아약스 응답을 렌더링하기 위해 "템플릿"같은 것을 사용하는 가능성이

$result = ''; 
$result = '<div>'; 
$result = ' <p>Username ' . $username . ' is not unique'; 
$result = '</div>'; 

return $result; 

있습니까? 순수한 PHP를 사용하고 싶습니다. 추가 프레임 워크가 없습니다.

+0

'file_get_contents()'와'eval()'로 파일을 읽을 수 있습니다. 또는 변수에 대한 자신의 자리 표시자를 정의하여 'preg_replace()'로 대체 할 수 있습니다. – pixelarbeit

+1

방법 1은 방법 2와 마찬가지로 합리적입니다. 실제로 사용 사례에 따라 다릅니다. 아마도 JSON과 같은 것으로 더 적은 양의 데이터를 반환하고 페이지 클라이언트 측을 업데이트하는 것이 더 좋을 것입니다. 아마 이미 페이지에 이미있는 많은 HTML을 다시 보내는 것보다 작고 빠른 AJAX 요청을 의미하기 때문입니다. 네, HTML을보다 쉽게 ​​생성 할 수있는 템플릿 방법이 있습니다. 더 많은 것을 발견하는 "PHP templating"... 그러나 이것은 주로 "의견을 바탕으로 한"질문 인 IMO입니다. – samiles

+0

감사합니다. 그러나 "replace"방법으로는 충분하지 않습니다. 템플릿에 배열 등을 처리하고 싶기 때문입니다. 대체 방법을 사용하여 관리하는 방법을 모르겠습니다. –

답변

0

이 경우 HTML template tag을 사용할 수 있습니다. 그것은 당신이 반복적으로 사용할 수있는 HTML을 저장할 수 있습니다.

JavaScript에서는 ID로 템플릿을 가져 와서 복제하고 (딥 복사본을 만드십시오) 필요한 템플릿에 필요한 JSON 값을 삽입하십시오. 이것을 페이지에 삽입 할 수 있습니다.

또는 handlebars.js과 같은 클라이언트 측 라이브러리를 사용하십시오.

PHP를 통해 HTML을 보내지 마십시오. 그것은 단지 명백한 잘못입니다.

+0

이 답변에 따르면, 나는 그것을 내 프로젝트에 구현하려고 시도했다. 서버 측 스크립트는 JSON 데이터를 반환합니다. 클라이언트 측에서는 jQuery를 사용하여 처리하고 결과를 템플릿에 추가합니다. 제 생각에는 최선의 접근이라고 생각합니다. 단 하나의 문제는 jQuery에서