CI 묻고 답하기

제목 CI ajax로 DB에 있는 데이터 보여주기
글쓴이 녹차마왕 작성시각 2016/03/17 16:01:53
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 14030   RSS

view 에서 db에 있는 특별 id값에 따른 데이터를 순차적으로 보여주는 버튼을 만들려합니다.

즉, 버튼을 첫번째 눌렀을땐 id = 1인 데이터의 값을 보여주고, 두번째로 클릭시에는 id=2 ... 하여 id=4인애까지 보여주고 다시 클릭하면 다시 id=1인 애로 보여주려고 합니다.

 

다음은 제 소스코드입니다.

1. [view(main.php)]

<div class="span10">   

<button id='tbutton'>button</button>   

<h1 id='v_title'>content</h1></div>

<script>   

$('#tbutton').click(function(){       

$.ajax({           

url:'http://localhost/ci/index.php/topic/test',           

success:function(data){alert('ajax success');               

$('#v_title').html(data); },            

error: function(){alert('fail');}       

})   

})

</script>

 

2. model

 function gett($topic_id){        return $this->db->query("SELECT title FROM topic where id = $topic_id;")->row();    }

 

3.controller

function test(){        

$temp_num = 1;      

 $temp = $this->topic_model->gett($temp_num);                

if($temp_num == 4){            

          $temp_num = 1;        

}else{            

              $temp_num++;        }              

 echo $temp->title;           

}

 

 

-------------------------이상 -------------------------

이렇게 했는데 view에서 controller를 부를때마다 temp_num값을 1로 초기화해서 그런지 id=1인 값만 echo됩니다. 

temp_num을 전역변수로 하면 아예 작동이안되구요.

이런 경우에는 어떻게 하면 좋을지 궁금합니다.

 

 

 

 

 

 

 다음글 첫 실습부터 막히네요....TT (2)
 이전글 멀티 업로드 질문드립니다. (3)

댓글

변종원(웅파) / 2016/03/17 16:15:09 / 추천 1
초기화 부분은 빼고 뷰에서 1,2,3,4 값을 제어하시는게 좋습니다.
녹차마왕 / 2016/03/17 16:24:27 / 추천 0

저도 그생각을 해보았는데 뷰에서 1,2,3,4 순서대로 값을 바꾸더라도 다시 controller에 값을 알려줘야 controller에서 값이 변경되 뷰에서 ajax으로 보여줄수 있지 않나요?

 

변종원(웅파) / 2016/03/17 17:25:54 / 추천 0

녹차마왕/ 자바스크립트로 화면단 제어하면서 값 자체를 변경하는게 편해서 그렇게 말씀드린거구요.

컨트롤러에서 세션이나 쿠키로 저장해서 사용하는 방법도 있긴 합니다.

 

하늘치 / 2016/03/17 17:26:42 / 추천 0

초기화 부분은 확실히 빼주셔야겠네요. ^^

뷰에서 제어하시라는 말씀은 스크립트로 처리하라는 뜻인 것 같은데요?

초반에 값을 1로 설정하시고.. success 상태에서 1 증가.. 4 보다 큰 경우는 다시 1로 초기화..

물론 url 끄트머리에 값을 넘겨줘야겠지요...

이 정도가 아닐까 생각됩니다.. ^^;

kaido / 2016/03/17 17:48:22 / 추천 0

차근 차근 생각 하면... 1개씩 늘어난다. 이게 쟁점이 아닌지.

복잡하게 생각 할 수록 사고의 미궁에 빠져들 수 있으니 차가운 콜라라도 한잔 해보세요 ^^

홧팅~

녹차마왕 / 2016/03/17 17:54:22 / 추천 0

웅파, 하늘치, kaido/ 고민하면서 해결한사이에 이렇게 많은 댓글이.. 감사합니다.

제가 해결한 방법은 view에서 controller로 넘겨줄때 ajax에 view데이터를 넣어서 보내고 num을 ajax성공시마다 1씩 증가시키는 방법으로 해결했습니다!

웅파님이 말씀해주신 세션이나 쿠키로 하는 방법도 한번 해봐야겠네요 감사합니다!