ajax json 질문입니다. 채택완료
</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개
안에 들어가야 할 값이 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>
대략적으로 적은거라..문법상 틀린것도 있을 수 있는데 저런 방식으로 돌아간다는 느낌만 받으시면 될것 같습니다.
결국 서버가 일을 덜 하게 되고 클라이언트가 일을 더 하게 되겠죠. (서버는 작은 데이터 값만 전송해주므로)
댓글을 작성하려면 로그인이 필요합니다.
저런건 굳이 json이런 것보다 간단한 방법으로 하는 것이...
$.post("./ajax_test.php","data=123", function(cont){
$('#test').html(cont);
});
/////////
ajax_test.php 마지막 변경 echo $result['data']; <--배열로 만들 필요없음
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
/// 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>
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인