값이 넘어온 것은 확인했습니다.
view에서,
<?php
if(isset($result)){
echo (" <div id='epi_postscript'> ");
$y=1;
foreach($result as $row){
echo (" <div class='epiPostscript_slide'> ");
// 페이지가 로드될 때 .tab과 .panel을 가진 .epiPostscript_slide 리스트가 보이게 한 후,
// .tab을 클릭하면 ajax된 결과가 .panel에 들어가 보이게 했습니다.
echo (" <div class='tab' data-panel_num='".$y."' data-epi_num='".$row->epi_num."'>
<div class='new_epiInfo'><small>".$row->title."</small><span class='colon'> : </span><b>".$row->episode."</b> </div>
<div class='epi_date'>".$row->postscript_date."</div>
</div>
<div class='panel panel_".$y." none'>
</div>
");
echo (" </div><!-- .epiPostscript_slide --> ");
$y++;
}
echo (" </div><!-- #epi_postscript --> ");
?>
// 이제 .tab을 클릭하면 ajax합니다.
<script>
var panel_num;
$('.epiPostscript_slide .tab').unbind().click(function(){
if($(this).siblings('.panel').hasClass('block')){
$(this).siblings('.panel').removeClass('block').addClass('none');
}else{
$(this).siblings('.panel').removelClass('none').addClass('block');
}
var epi_num=$(this).attr('data-epi_num');
panel_num=$(this).attr('data-panel_num');
var data='epi_num='+epi_num;
$.ajax({
url : '.......'+data,
type : 'GET',
success : function(result){
makeEpiInfo(JSON.parse(result));
}
});
});
function makeEpiInfo(data){
var panel=document.getElementsByClassName('panel_'+panel_num);
var epi_poster=document.createElement('div'); epi_poster.innerHTML=data['내용'];
panel.appendChild(epi_poster);
// 요기서 에러가 납니다.
// appendChild()는 함수가 아니라는 내용의 에러더군요.
// .panel은 빈 채로 아무것도 없습니다.
// 어떻게 하면 makeEpiInfo()의 결과로 된 html을 .panel 안으로 들어가게 할 수 있을까요....^^?
}
답변에 대한 답변의 방법이 없어서 여기에 글을 추가합니다......
console.log(data);로 확인했습니다.
data는 잘 넘어왔습니다. 문제는 panel로 어펜드가 되지 않는 것입니다.
Object HTMLDivElement와 object HTMLCollection의 차이가 무엇인가요?
저 panel은 object HTMLCollection으로 나오는데....
고유한 클래스 이름이라 인덱스가 필요없는 줄 알았는데, 아니네요.
getElementsByClassName()으로 가져왔으니
panel[0] 으로 사용하면 되는 듯 합니다..... 감사합니다...^^
dataType: "json", 추가해 주셔야 합니다.
그래야 json 타입으로 가져옵니다.
디폴트는 text 입니다.
거기에 data 를 JSON.parse() 하시지 않아도 데이터를 객체로 리턴해서 사용 가능합니다.
ajax 메뉴얼을 다시 한번 살펴 보셔야 할것 같습니다.