테스트 사이트 - 개발 중인 베타 버전입니다

ajax json 질문입니다. 채택완료

아기새 6년 전 조회 3,486

</p>

<p>///  test.php</p>

<p><div id="test"></div></p>

<p> </p>

<p>$.ajax({</p>

<p> url : "./ajax_test.php",</p>

<p> type ; "post",</p>

<p> dataType : "json',</p>

<p> data : {data : 123}</p>

<p> success : function(res) {</p>

<p>  $('#test').html(res.data);</p>

<p> }</p>

<p>});</p>

<p> </p>

<p> </p>

<p>// ajax_test.php</p>

<p>$data = $_POST['data'];</p>

<p>$result = array();</p>

<p>$result['data'] = '';</p>

<p>$result['data'] = "<div></p>

<p><span>123</span></p>

<p><div></p>

<p> <span>234</span></p>

<p></div></p>

<p></div>";</p>

<p> </p>

<p>echo json_encode($result);</p>

<p>

 

이런식으로 json으로 할때 $result['data']처럼 html을 변수에 넣는방법말고

 

ajax success 할때 html을 받으려면 어떻게해야하나요?

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트

안에 들어가야 할 값이 123 / 234라는 값이면 이 두 값을 $result에 넣으시고 echo json_encode($result)하시면 됩니다.

 

그러면 ajax에서 success할때 값을 받아올 것이고, 그 안에서 지금 $result['data']에 적으신 코드를 작성하시면 됩니다.

 

예를 들면 다음과 같습니다.

success : function(res){</p>

<p>    var temp_data = "";</p>

<p>    for(var i=0; i<res.length; i++){</p>

<p>        temp_data += "<span>"+res[i]+"</span>";</p>

<p>    }</p>

<p>    $('#test').html(data);</p>

<p>}</p>

<p>

 

대략적으로 적은거라..문법상 틀린것도 있을 수 있는데 저런 방식으로 돌아간다는 느낌만 받으시면 될것 같습니다.

 

결국 서버가 일을 덜 하게 되고 클라이언트가 일을 더 하게 되겠죠. (서버는 작은 데이터 값만 전송해주므로)

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

6년 전

저런건 굳이 json이런 것보다 간단한 방법으로 하는 것이...

 

$.post("./ajax_test.php","data=123", function(cont){

  $('#test').html(cont);

});

/////////

ajax_test.php 마지막 변경 echo $result['data']; <--배열로 만들 필요없음

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

6년 전

json타입인 경우 배열변수에 넣지 않고 가져 올 수 있는 방법은 없는 것으로 알고 있습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

티로그
6년 전

 

///  test.php
<div id="test"></div>
 
$.ajax({
 url : "./ajax_test.php",
 type : "post",
 dataType : 'html',
 data : {data : 123}
 success : function(html) {
  $('#test').html(html);
 }
});
 
// ajax_test.php
<div>
  <span>123</span>
  <div>
    <span>234</span>
  </div>
</div>
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인