질문
Q #8978
ajax 질문이요~
kimswave
2010-05-26 10:21:57
--------------------------------------------- 요기 아래가 기본 클라이언트 측 뷰 단입니다. -------------------------------
--------- ajax 로 호출하고 있구요.
<div class="cls100_p">
<h4><span class="clsCategory"><?php echo $this->lang->line('CATEGORIES');?></span></h4>
<div class="clsCategoryList clearfix" id="catInner"> </div>
</div>
new Ajax.Request('<?php echo $base_url.'/home/getCate/'; ?>'+catid,
{
method:'get',
onSuccess: function(transport){
var response = transport.responseText || "no response text";
document.getElementById('catInner').innerHTML = response
},
onFailure: function(){ alert('Something went wrong...') }
------------------------------------------------ 요기 아래가 ajax로 호출된 컨트롤러입니다.
function getCate(){
$catid = $this->uri->segment('3','0');
$conditions = array('categories.group_id' => $catid);
$this->outputData['categories'] = $this->skills_model->getCategories($conditions);
//pr($this->outputData['categories']->result());exit;
$this->load->view('categoryList',$this->outputData); -->여기서 질문입니다.
이렇게 view를 호출하면 ajax의 응답이 되는건가요? 위의 자바스크립트에서 ajax로 이 컨트롤러로 요청을 보내었고,
이 컨트롤러 가 받았는데 여기서 하는 일이라곤 모델 불러와서 view 호출한 거 밖에 없는데 이게 응답이 되는건가요?
코드 이그나이터에서는 이렇게 view만 호출하면 ajax의 서버측 응답이 되나요? innerHTML에 들어가는...
보통의 ajax는 json이나 xml로 요청을 주고 받는 것으로 알고 있는데요. 서버측에서 response 형식으로 응답하는 걸로
알고 있는데요.
코드 이그나이터의 콘트롤러 단에서 $this->load->view 하게 되면 이게 바로 응답이 되는건가요? 일종의 forwarding?
}
----------------------------- 요 아래가 categoryList 뷰의 내용이구요. -------------------------------
<ul class="clsFloatLeft">
<?php
if(isset($categories) and $categories->num_rows()>0)
{
$i=0;
foreach($categories->result() as $category)
{
$name = replaceSpaceWithUnderscore($category->category_name); ?>
<li><a href="<?php echo site_url('project/category/'.$name); ?>"><?php echo $category->category_name;?></a></li>
<?php $i++;
}
} ?>
</ul>
포럼소스 보시면 댓글 쓰는 부분이 ajax로 되어 있습니다. 그 부분 보시면 어떻게 구현하고 있는지 참고가 되실 겁니다.