테스트 사이트 - 개발 중인 베타 버전입니다

체크박스 2개이상 값 배열로 넘기기 채택완료

초얌 4년 전 조회 4,180

먼저 그누보드에 대한 질문이 아니라 죄송합니다..

혼자해보려다가 잘 안되고 답답한데.. 제가 도움요청 구할곳은 이곳뿐이네요..ㅜ

 

그누보드 기반이 아닌 PHP에서 복수 체크박수 값을 넘겨 받는 것에 대해 질문 합니다..

 

그누보드에서는 복수 체크박스 값넘기는 법을 작은별님께서 올려주신 글을 보고 따라할 수 있었는데요,

https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=177

 

그누보드 외 PHP에서 응용이 잘 안되네요..

예를 들어 아래 코드에서 두번째 체크박스(q_2)의 값만 배열을 통해 복수로 받고 싶은데, 컨트롤러 소스에서 어떻게 수정해야할까요?

 

고수님들의 도움부탁드립니다.

죄송하고 감사합니다.


[페이지 소스]

</p>

<p><form action="survey_update" method="post"></p>

<p><p class="r1">

    <input type="radio" name="q_1" value="버스">

    <input type="radio" name="q_1" value="기차">

    <input type="radio" name="q_1" value="자전거">

    <input type="radio" name="q_1" value="도보">

</p>

<p class="r2">

    <input type="checkbox" name="q_2" value="수박">

    <input type="checkbox" name="q_2" value="포도">

    <input type="checkbox" name="q_2" value="사과">

    <input type="checkbox" name="q_2" value="배">

    <input type="checkbox" name="q_2" value="바나나">

</p>

<p class="r3">

    <input type="radio" name="q_3" value="생선">

    <input type="radio" name="q_3" value="육류">

    <input type="radio" name="q_3" value="채소">

</p></p>

<p>


[컨트롤러 소스]

</p>

<p>    public function survey_update {

        $rules = array(

            array('field' => 'q_1', 'label' => '설문1', 'rules' => 'required'),

            array('field' => 'q_2', 'label' => '설문2', 'rules' => 'required'),

            array('field' => 'q_3', 'label' => '설문3', 'rules' => 'required')

            );</p>

<p>        $this->form_validation->set_rules($rules);

        if ($this->form_validation->run() == FALSE) {

            alert('빈칸을 확인하여 주세요');

            return false;

        }</p>

<p>        $data_array = array(

            'survey1' => $this->input->post('q_1',true),

            'survey2' => $this->input->post('q_2',true),

            'survey3' => $this->input->post('q_3',true)</p>

<p>    }</p>

<p>

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

name="q_2[]" value="사과"

name="q_2[]" value="배"

 

controllers

$post = $this->input->post(null, true);

$data = [];

$data = [

   'q_1' => implode(", ", $post['q_1']),

   'q_2' => implode(", ", $post['q_2']),

   'q_3' => implode(", ", $post['q_3']),

];

이렇게 해서 $data만 그냥 modules로 넘기셔서 db에 넣으면 되지 않을까 싶습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

    <input type="checkbox" name="q_2[]" value="수박">
    <input type="checkbox" name="q_2[]" value="포도">
    <input type="checkbox" name="q_2[]" value="사과">
    <input type="checkbox" name="q_2[]" value="배">
    <input type="checkbox" name="q_2[]" value="바나나">

괄호 안에 숫자를 쓰실 수도 있습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

초얌
4년 전
안녕하세요 엑스엠일님 답변 감사드립니다^^
저 name 부분에 저렇게 작성하는 방법은 알겠는데, 배열로 받아서 (수박,포도) 이런식으로 DB저장을 어떻게 하는지 모르겠네요..
엑스엠엘
4년 전
db 구조가 어떻게 되어 있느냐에 따라 다릅니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인