CI 묻고 답하기

제목 post로 값 불러오기 방법여쭙니다~
글쓴이 우왕 작성시각 2011/07/05 20:16:25
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 21078   RSS
안녕하세요..
수고하십니다~

바로 질문들어가자면
제가 post로 값을 받아서 DB에 입력되도록 하고있는 작업을 하고있는데요
post로 값을 불러도 오지를않아서요.. 0으로 DB에 저장되거든요....

text박스 이름이 title이고

$title = $this->input->post('title');

$this->db->insert('board',$title);이렇게 넣는 작업을 모델에서 하고있거든요..??
혹시 제 방법이 틀린건가해서요..


그리고 view에 폼이 있고.. 컨트롤러에서는  뷰불러오고 모델불러오고 하거든요..??

맞는방법이 아닌걸까요...?


참.. 페이지네이션 할 때말인데요..
페이지당 10개씩 보여주려고하는데 한페이지에 10개가 아닌
전체다 뿌려주는데요..혹시 10개씩 보여줄수있는 방법이 있을까요...........
페이지 클릭을 해봐도 URL창만 바뀌고 페이지는 그대로라서요..;

휴....산넘어 산이네요..ㅜ.ㅜ
감사합니다..수고하세요.




 다음글 DB 출력시 한글 이 아닌현상 (6)
 이전글 CI 초보가 질문 드립니다!! (4)

댓글

변종원(웅파) / 2011/07/06 13:09:07 / 추천 0

매뉴얼을 다시 한번 읽어보시기 바랍니다.

http://codeigniter-kr.org/user_guide/database/active_record.html#insert

insert 할때 배열로 만들어 넣는 방법,
set()을 사용하는 방법이 있는데

$this->db->insert('board',$title); 여기서 $title은 배열이어야 합니다.

페이지네이션은 모델에서 리스트 가져올때 변수로 넘겨서 처리하는데 여기서 다 설명하기가 힘듭니다.
적용하신 소스를 올려주세요.

우왕 / 2011/07/06 14:32:38 / 추천 0

아 네네 $this->db->insert('board',$data); data=array( 이런식으로 해서 배열로 넣어줬어요~~ 
간단하게 한개만쓴다는게...저렇게됐네요..

페이지네이션은,...
컨트롤러 일부소스입니다.
 

function myform(){ //테스트..!!!
   $this->load->model('ci_test_model');
   $this->load->library('pagination');

   $config['base_url'] = 'http://www.xx.com/ci/ci/myform/';     // 주소는 지우고 xx로 해놨습니다
   $config['total_rows'] = '41';
   $config['per_page'] = '5';
   $config['uri_segment'] = $this->uri->segment(3,1); // 3번째 세그먼트를 페이지변수로 쓰고 만약 값이 없다면 1로 할당함.
   //print_r ($this->uri->segment_array());
   $this->pagination->initialize($config);
   $data['my'] = $this->pagination->create_links();
   $data['a'] = $this->ci_test_model->myform();
   $this->load->view('myform',$data);
  }



뷰 소스입니다
 

<table border='1'>
  <tr>
   <td>번호</td>
   <td>제목</td>
   <td>작성자</td>
   <td>작성일</td>
   <td>조회</td>
  </tr>
<?
 foreach($a->result() as $row){
?>
  <tr>
   <td><?=$row->pk?></td>
   <td><?=$row->title?></td>
   <td><?=$row->u_name?></td>
   <td><?=$row->reg_date?></td>
   <td><?=$row->sel_cnt?></td>
  </tr>

<?
 }
 echo $my;
?> 
</table>




모델소스입니다

function myform(){
   $a = $this->db->get('bbs');
   return $a;
  }



제가 게시판에 들어갈 페이지작업을 하기전에 테스트한번 해보고자 myform소스 추가해서
해보고있는거거든요....

결과를 확인해보면 123>Last 뜨고 2를 누르면 URL만 바뀌고 목록은 그대로뜹니다..

변종원(웅파) / 2011/07/06 15:36:58 / 추천 0

모델에서 아무 처리를 안하는데 값이 정상적으로 나오기를 기대하는것은... ^^

$data['a'] = $this->ci_test_model->myform();
여기에   $config['per_page']  ,  $config['uri_segment'] 를 넘겨주어야 하고
myform함수에서 받아서 처리를 해줘야 합니다.

ci의 문제가 아니라 기본 로직문제입니다.
다른 게시판들은 어떻게 처리를 하는지 보시는 것이 좋을 것 같습니다. 포럼소스를 받아서 보셔도 어떻게 처리하는지 아실 수 있구요.

이렇게이렇게 하면 됩니다라고 소스를 올려드릴 수 있지만 직접 찾아보시고 왜 그렇게 되는가를
아시는 것이 좋을 것 같습니다.

찾으시기 힘들테니 참고하실 위치정도는 알려드리겠습니다.

포럼소스 중 controllers/board.php 에서 lists 메소드에서
$data['list'] = $this->board_model->load_list($start, $rp, $post, MENU_BOARD_NAME_EN);
$start와 $rp가 어떻게 만들어지는지 보시면 이해가 되실 겁니다.

그리고 models/board_model.php에서 function load_list($page, $rp, $post, $table) 의 내용중
$this->db->limit($rp, $page); 이 있습니다. 이 부분이 mysql에서 페이징에 해당하는 데이터를
가져올 수 있게 하는 부분입니다. (mysql limit 구문 검색해보세요)

그럼 건투를..

우왕 / 2011/07/06 17:57:53 / 추천 0

네~ 감사합니다..모델에서도 해줘야하는지 몰랐네요...진짜 검색많이했었는데 휴......감사합니다~~~