우선 구현하고자 하는 것은
다수의 라디오버튼이 있고 각각의 value는 0~n 입니다.
라디오버튼을 체크할 때 마다 해당 value를 읽어서 새로운 데이터가 테이블에 표시되게끔
하고 싶습니다.
현재 궁금한 점은
1. view에서 ajax로 controlller에 post로 value 값을 전송을 하면
2. contoller에서 데이터를 뿌려주는 테이블에 전송을 하고
3. model에서 다시 그 값을 받아 데이터를 읽어 올 때 where절에다 받은 값을 넣어줘서 view에 반영
인데, 모델에 where절에 value값을 넣어도 view에 반영이 안되어서 이렇게 질문을 남깁니다.
우선 저는 전문적으로 개발을 하는 사람은 아닙니다.
그냥 여기랑 구글에 검색을 하면서 프로젝트를 진행 중입니다.
다시 말하면 전문적인 지식은 없다고 보셔도 될겁니다.
현재 궁금한 점만 해결되면 프로젝트는 완성이라.. 염치 불구하고 글을 올립니다.
[질문은 이렇게 하면 되는지 ^^]
코드를 보여 드리면
뷰에서
<label class="radio-inline">
<input type="radio" name="chkradio" value="0" checked="checked"> 승인대기
</label>
<label class="radio-inline">
<input type="radio" name="chkradio" value="1"> 승인완료
</label>
<label class="radio-inline">
<input type="radio" name="chkradio" value="2"> 신청취소
</label>
<label class="radio-inline">
<input type="radio" name="chkradio" value="3"> 전체
</label>"radio" name="chkradio" value="3"> 전체
</label>
<script type="text/javascript">
$("input[name=chkradio]").on('change', function(){
$.ajax({
type : "POST",
data :
{
"treatstatus" : $("input[name=chkradio]:checked").val(),
},
dataType: "html",
url : '/admin1/affiliate_ajax_proc',
success : function(msg)
{
alert(msg);
}
,beforeSend:function(){
$('.wrap-loading').removeClass('display-none').fadeIn("slow");
}
,complete:function(){
$('.wrap-loading').addClass('display-none').fadeOut("slow");
}
})
});
</script>
이렇게 controller로
treatstatus (모델에서 where절에 반영이 될 숫자 ) 를 전송을 하면
ajax를 처리하는 controller에서는 이렇게 받습니다.
function affiliate_ajax_proc()
{
$treatstatus = $this->input->post('treatstatus', true);
$data["results"] = $this->admin_model->gets_affiliate_lists($treatstatus);
}
아, 그리고 목록을 보여주는 (view를 생성? 하는) controller는
function affiliate($treatstatus)
{
$this->load->view('admin1/_head');
$data["results"] = $this->admin_model->gets_affiliate_lists($treatstatus);
$this->load->view('admin1/affiliate', $data);
$this->load->view('admin1/_tail');
$this->output->enable_profiler(TRUE);
}
입니다.
여기까지는 별 문제 없었지만
질문의 대상인 모델은
function gets_affiliate_lists($treatstatus)
{
$treatstatus = $this->input->post('treatstatus');
$this->DB1->select("쿼리", false);
$this->DB1->from('테이블');
$this->DB1->where('컬럼', $treatstatus);
$query = $this->DB1->get();
if($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
인데 여기
$this->DB1->where('컬럼', $treatstatus);
에 받은 값이 들어가고 view에 뿌려주고 싶은데
도통 방법을 모르겠네요, 영어을 썩 잘하는 편이 아니라 (읽는 것은 어느정도 되는데, 질문을 할 줄 모릅니다)
스텍오버플로를 봐도 잘 이해가 되질 않습니다.
조언 부탁 드리겠습니다.
즐거운 점심되시고요
질문의 방법이 잘못되었거나 문제가 있는 게시글이면 말씀 주세요
<script type="text/javascript"> $("input[name=chkradio]").on('change', function(){ $.ajax({ type : "POST", data : { treatstatus : $("input[name=chkradio]:checked").val() }, dataType: "html", url : '/admin1/affiliate_ajax_proc', success : function(msg) { alert(msg); } ,beforeSend:function(){ $('.wrap-loading').removeClass('display-none').fadeIn("slow"); } ,complete:function(){ $('.wrap-loading').addClass('display-none').fadeOut("slow"); } }); }); </script>