질문 Q #23772
ajax로 post보내기
닉네임work 2021-10-26 10:22:45

뷰

   <form class="form-horizontal" method="post" action="">

            <input type="text" name="search" id="search">

            <button type="submit"  class="btn btn-search_btn" id="search_btn">Submit</button>

    </form>

<script>

 

    $("#search_btn").click(function(){

        alert("테스트 클릭 성공");

        var search = $("#search").val();

        $.ajax({

            url : 'http://localhost/ci3_1/index.php?/Tutorial/search/',

            type : 'POST',

            dataType : 'json',.

            success : function(data){

                $ alert("테스트 클릭 성공1");

            }

</script>

컨트롤러

public function search()

    {

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

        print_r($search);

        $this->load->helper('alert');

         exit;

        $this->load->model('Member_model');

        $data['members'] = $this->Member_model->search($search);        

        // view 호출

        $this->load->view('Tutorial/members', $data);

       

    }

        });

   

    });

모델

function search($search) {

       

        $this->load->database();

       

        $sql = "select content from items where content like '%".$search."%';";

        $query = $this -> db -> query($sql);

        $result = $query -> row();

       

        print_r($result);

        return $result;

    }

 

이렇게 ajax로 했는데 아무 이벤트도 일어나지 않습니다 ㅠ

뷰에서 post로 컨트롤러에서 받아 모델의 쿼리를 실행해 값을 리턴받아 다시 리스트에 뿌려주려고 합니다.

검색기능을 만드는 중인데 버튼을 눌러도 컨트롤러까지 가질 않습니다.

어디가 문제일까요??..

답변 4
#1 테러보이 2021-10-26 12:59:10
csrf를 확인 하시고 네트워크 탭에서 에러없이 전송됬는지 확인하세요
#2 닉네임work 2021-10-26 13:20:02
답변감사합니다 csrf는 안했고 네트워크탭에는 아무것도 뜨지않습니다
#3 테러보이 2021-10-26 15:52:01

버튼을 눌렀는데 네트워크탭에 안뜨면 ajax가 작동을 안했다는 의미입니다.

소스를 다시 보니 서브미트에 거셨는데 저렇게 되면 form submit가 작동됩니다.

스크립트 실행 보장이 없습니다.

추가로 $alert() 로 되있는데 alert()입니다.

#4 닉네임work 2021-10-26 19:20:51
덕분에 네트워크 탭에서까지 보일 수 있게 되었습니다~!! 답변 정말 감사합니다~!!