2016-10-16 1 views
0

내 고객의 내부 메시지가있는받은 편지함이 있습니다.jQuery를 사용하여 MVC에서 데이터를 전송하는 가장 좋은 방법은 무엇입니까?

$.ajax({ 
     url: 'messages/retrieve/' + client_id, 
    }).done(function(data) { 

     $('.messages-dialog').html(data); 

    }); 

내 컨트롤러는 JSON 데이터와 변수를 반환해야합니다 : 나는 이름에 목록을 클릭하면 그래서 jQuery를 $.ajax를 사용하여 요청하는거야? 나는 그것이 그것을보기에 버려야한다는 것을 이해하고 거기서 그것을 치료해야만한다. 그러나 그것이 클라이언트 쪽이라면 어떻게해야 하는가?

컨트롤러에 html 구조를 만들고 처리하고 jQuery.html();을 사용하여 .messages-dialog에서로드하는 것이 더 나은지 잘 모르겠습니다.

죄송합니다. 그 문제에 대해 조금 분실했습니다.

+0

컨트롤러가 모든 데이터가 포함 된 json을 반환하도록하는 것이 가장 좋습니다. jquery에서 데이터를 구문 분석하고 자바 스크립트 – Cristian

+0

@ 크리스티안으로 뷰를 생성하는 작업을 처리합니다. 왜 이것이 "모범 사례"입니까? 그 어떤 신용 할만한 출처? – Dekel

+0

데이터가 표시되는 방식을 변경하려는 경우 언제든지 서버 쪽 코드를 건드릴 필요가 없다는 사실을 생각하면 jquery 스크립트의 데이터를 다르게 처리하는 것만으로도 충분합니다. – Cristian

답변

0

위 예제와 같이 jQuery.ajax() 메서드를 사용할 수 있습니다. 또한 예제 http://api.jquery.com/jquery.ajax/과 함께 공식 문서를 참조하십시오.

게다가 보내는 방법과 내용에 따라 jQuery.get() 및 jQuery.post() 메서드를 사용할 수 있습니다. http://api.jquery.com/get/, http://api.jquery.com/jQuery.post/ :

var url = 'messages/retrieve/' + client_id; 
$.post(// for example 
    url, 
    function(data) { 
     $('.messages-dialog').html(data); 
    }); 

여기에 예제와 함께 공식 문서를 참조하십시오 : 아래 그림과 같이이 방법을 사용할 수 있습니다.

서버 핸들러는 다음과 같아야합니다

use JsonResponse; // you must specify the exact component (I use this) 

/** 
* Change message in dialog // for example 
*/ 
public function changeDialogMessageAction(Request $request) { 
    // request data processing 

    $response = new JsonResponse(); 
    $response->setData(array(
     // new data for returning to client 
    )); 

    return $response; // your data, which will be handled in callback 
} 

당신은 컨트롤러에서 HTML 구조를 작성해서는 안됩니다. 그것은 나쁜 스타일입니다! JavaScript는 비동기 이벤트 모델을 가지고 있으므로 사용해야합니다. 컨트롤러가 전달한 데이터를 처리/변형 한 다음 다시 돌아와야합니다. jQuery 콜백은 처리 된/변환 된 데이터를 DOM에 내장해야합니다.

+0

데이터 인수는 어디에 있습니까? 왜 게시합니까? '$ .getJson'에 대해 언급하지 않으시겠습니까? – charlietfl

+0

1) 무슨 주장? 작업의 컨텍스트를 어떻게 알 수 있습니까? 2)주의 깊게 읽으십시오 : // 예를 들어 3) JSON에 대한 한 단어는 그의 질문에 없습니다 !!! –

관련 문제