2012-06-07 4 views
0

JQuery의 AJAX ".get"메소드는 컨트롤러의 (PHP 페이지) 메소드를 호출하고 리턴 된 데이터는 추가로 처리됩니다 ...하지만 컨트롤러가 컨트롤을 전송하는 것이 좋습니다. 모델과 뷰에 ... 컨트롤러는 아무것도 반환하지 않거나 데이터를 반향하지 않습니다 ... 그래서 우리는 어떻게이 주장을지지 할 수 있습니까? 나는 틀릴 수도있다. 초기 학습 단계에 머물러있어. 너무 순진한 질문을하면 용서해 주겠다. (Codeigniter로 jQuery 아약스

예를 들어 구현하려는 JQuery의 자동 완성 플러그인은 사용자의 배열을 기대한다. 이름은 데이터베이스에서. 일반적으로 CI .. 흐름 양식보기 -> 컨트롤러 -> 데이터베이스 모델 (데이터) -> 컨트롤러 (데이터) -> 다른보기 ...하지만 JQuery/AJAX 방법을 구현하는 경우 AJAX를 호출 기능 (수)가 그것을 잡아 수 있도록 컨트롤러는 데이터를 출력해야합니다. 그렇지?

는 그래서는 MVC 패러다임에 영향을주지 않고 흐름해야 하는가?

감사합니다.

답변

4

MVC는 단지 디자인 패턴 일뿐입니다. 그것은 일을 쉽게하는 경향이 있습니다. 그러나 응용 프로그램을 설계하는 방식이 그렇다고해서 반드시 준수해야합니다.

저는 Codeigniter에서 작업하고 컨트롤러를 사용하여 ajax에 응답합니다. 필자의 경우 컨트롤러는 요청을 수신하고 데이터를 다시 전송하는 역할을 담당합니다 (뷰 또는 템플릿을 호출하는 것처럼).

지나치게 많이 생각하지 마시고 원할 때 원하는대로 사용하십시오.

1

mvc를 고수하고 싶다면 아약스 응답에 사용하는보기 만 있으면됩니다.

응답을 반향시킬 수도 있고, 항상 json을 사용하여 회신을 보내려면 json_encode() 응답을 보낼 수도 있습니다.

0

Nicolas가 지적했듯이 MVC는 법률이 아닌 디자인 패턴입니다.

그러나, 당신은 보기로하지만이 일어나는 매체 컨트롤러보기 또는 모델보기 사이에있는 통신을 통해 전송으로하지 AJAX 생각한다. 따라서 실제 보기은 PHP에서 더 이상 표현되지 않고 브라우저 자체 또는 실행중인 JavaScript 코드로 표현됩니다. Zend JSON-RPC Server과 같은 RPC 서버를 사용하여 PHP 측에서 AJAX를 추상화 할 수 있습니다.

또한 웹 응용 프로그램의 경우 Model-View-Presenter와 유사한 패턴이 View와 Presenter간에 통신을 유지하므로 더 유용 할 수 있습니다.