ajax json 질문입니다.
본문
/// test.php
<div id="test"></div>
$.ajax({
url : "./ajax_test.php",
type ; "post",
dataType : "json',
data : {data : 123}
success : function(res) {
$('#test').html(res.data);
}
});
// ajax_test.php
$data = $_POST['data'];
$result = array();
$result['data'] = '';
$result['data'] = "<div>
<span>123</span>
<div>
<span>234</span>
</div>
</div>";
echo json_encode($result);
이런식으로 json으로 할때 $result['data']처럼 html을 변수에 넣는방법말고
ajax success 할때 html을 받으려면 어떻게해야하나요?
!-->답변 4
안에 들어가야 할 값이 123 / 234라는 값이면 이 두 값을 $result에 넣으시고 echo json_encode($result)하시면 됩니다.
그러면 ajax에서 success할때 값을 받아올 것이고, 그 안에서 지금 $result['data']에 적으신 코드를 작성하시면 됩니다.
예를 들면 다음과 같습니다.
success : function(res){
var temp_data = "";
for(var i=0; i<res.length; i++){
temp_data += "<span>"+res[i]+"</span>";
}
$('#test').html(data);
}
대략적으로 적은거라..문법상 틀린것도 있을 수 있는데 저런 방식으로 돌아간다는 느낌만 받으시면 될것 같습니다.
결국 서버가 일을 덜 하게 되고 클라이언트가 일을 더 하게 되겠죠. (서버는 작은 데이터 값만 전송해주므로)
!-->저런건 굳이 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>
json타입인 경우 배열변수에 넣지 않고 가져 올 수 있는 방법은 없는 것으로 알고 있습니다.
답변을 작성하시기 전에 로그인 해주세요.