2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

Cakephp3 에서 Ajax 사용하기

그냥 쓰는 것과 비슷한데..전송 시 메소드를 지정해주는 것과 전송된 데이터를 어찌 받아서 사용하느냐 정도만 신경쓰면 될 듯 하다.우선 컨트롤러 쪽에서는 메소드 하나 만들어서 페이지 렌더링을 꺼 주고, is(’ajax’)로 넘어온 값을 확인 한 후에 사용하면 된다. 
// XXXXController.php public function ajaxTest() { $this->autoRender = false; if ($this->request->is("ajax")) { $username = $this->request->data['username']; $password = $this->request->data['password']; } if(isset($username) && isset($password)) { echo 'OK'."\n"; echo 'username;'.$username."\n"; echo 'password;'.$password; } else { echo 'NO'; } }
뷰(.ctp) 쪽은 심플하게..음..아직도 cake의 helper를 능숙하게 못 쓰는 관계로 순수 html과 helper 코드가 섞여있지만 뭐...그러려니...(멍...)
<div class="row"> <div class="col-sm-12"> <div class="index columns content"> <?= $this->Form->create('Outputs',['id' => 'form_1']) ?> <?= $this->Form->input('username',['label' => 'Username', 'type' => 'text']) ?> <?= $this->Form->input('password',['label' => 'Password', 'type' => 'password']) ?> <?= $this->Form->input('submit',['label' => 'Submit','type' => 'submit']) ?> <?= $this->Form->end() ?> <p> <?= $this->Form->input('ajax',['label' => 'Ajax', 'type' => 'button']) ?> <div class="result"> </div> </div> </div> </div>
스크립트는 일부러 두 개 만들어봤다..전송 버튼과 AJAX 버튼..처리하는 내용은 똑같음..url에 주소를 적은 후 뒤에 컨트롤러에 정의한 메소드명을 적어줘야 하는 것이 포인트. 여기서는 OutputsController.php 에 ajaxTest() 를 정의했다고 가정했다.
<script type="text/javascript"> $(function() { // Submit button $('#form_1').on('submit', function(e){ e.preventDefault(); $.ajax({ url:'../outputs/ajaxTest', type:'POST', data:{ 'username':$('#username').val(), 'password':$('#password').val() } }) .done(function(data){ $('.result').html(data); console.log(data); }) .fail(function(data){ $('.result').html(data); console.log(data); }); }); // Ajax button $('#ajax').on('click',function(){ $.ajax({ url:'../outputs/ajaxTest', type:'POST', data:{ 'username':$('#username').val(), 'password':$('#password').val() } }) .done(function(data){ $('.result').html(data); console.log(data); }) .fail(function(data){ $('.result').html(data); console.log(data); }); }); }); </script>
음...자바스크립트나 제이쿼리는 디버깅 하기가 좀...ㅠㅠ 게다가 구조가 복잡해져서 함수 안에 함수가 있고 그 안에 또 객체나 배열을 적기도 하니까..괄호, 콤마, 세미콜론 등이 막 복잡하게 얽혀보이고 하나 빼먹거나 하나 더 있거나 하면 바로 에러가 나니..OTL익숙해지면 좀 나아지려나...흠...ㅠㅠ

댓글

이 블로그의 인기 게시물

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[react-native] uuid 생성이 에러가 날 때 대처법