제목 | Ajax 질문좀 드릴게요. 미치겠습니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 째리 | 작성시각 | 2019/01/18 11:30:42 |
|
|||
분명히 저번주에 만들어놨을때는 잘됬는데 뭐때문인지 이상하게 안되네요. model 쿼리문은 로그인할때랑 같이사용하기때문에 return값이 없을수가 없는상태입니다. dataType을 text, json둘 다 사용해도 리턴이 이상하게넘어옵니다. 헤더부분이 통째로 리턴되는것같습니다;; 코드한번 봐주세요. $.ajax({ type:'POST', dataType:"text", url:"/user/kst_user/idcheck", data:{"UID":UID}, success : function(result){ if(result == 0){ alert("중복된 아이디입니다."); $("#UID").val(''); $("#UID").focus(); }else{ alert("사용가능한 아이디입니다."); $('#UID').attr('readonly','readonly'); $('.login50-form-btn').css('background-color','#66D37E'); $('#idcheckicon').removeClass(); $('#idcheckicon').addClass('fa fa-check'); $('#idcheckbtn').removeAttr("onclick"); $('#validation').val('1'); } } });
function dataType_JSON(){ $UID = $this->input->post('UID'); $user = $this->user_model->getUserID(array('UID'=>$this->input->post('UID'))); if($user->UID == $this->input->post('UID')){ $result = ['success' => false]; echo json_encode($result); }else{ $result = ['success' => true]; echo json_encode($result); } } function dataType_TEXT(){ $user = $this->user_model->getUserID(array('UID'=>$this->input->get('UID'))); if($this->input->post('UID') == $user->UID){ return 0; }else{ return 1; } }
function getUserID($id) { $result = $this->db->get_where('USER', array('UID'=>$id['UID']))->row(); return $result; }
|
|||
다음글 | 파일업로드 질문좀드릴게요.. (7) | ||
이전글 | model 에서 다른 파일을 include 하고 싶은데... (2) | ||
째리
/
2019/01/18 11:40:55 /
추천
0
컨트롤러 함수가 2개인 이유는 json, text두개 전부 올린겁니다!
|
변종원(웅파)
/
2019/01/18 11:41:31 /
추천
1
헤더가 통째로 나온다면 컨트롤러에 remap으로 헤더, 푸터를 자동 추가했거나 어디선가 헤더가 선언된겁니다. 보통 ajax용 컨트롤러를 따로 만들거나 remap에서 ajax 메소드는 헤더, 푸터를 붙이지 않도록 처리합니다. |
째리
/
2019/01/18 11:43:38 /
추천
0
오호 감사합니다 한번 해보겠습니다.
|
째리
/
2019/01/18 12:07:13 /
추천
0
웅파님 json형태로 리턴했을때 Message: Trying to get property of non-object 이런메세지가나오고, 중복되지않는 아이디를 검색했을땐 else부분이 작동되지않습니다. 중복되는 아이디는 잘 작동하구요. 왜이럴까요.. |
한대승(불의회상)
/
2019/01/18 12:25:41 /
추천
0
console.log(result) 로 result 결과가 어떻게 넘어오는지 부터 확인해 보세요.
|
kaido
/
2019/01/18 12:29:41 /
추천
0
ajax가 꼬였다 싶으면 추천해 드리는 방법이... 그냥 submit 으로 때려서 확인해 보시라는 것입니다.
$this->user_model->getUserID(array('UID'=>$this->input->get('UID'))); 위에는 post로 받아가시고 밑에선 get 으로 받음
|
엽토군
/
2019/01/18 12:31:18 /
추천
0
return 0; 이나 return 1; 하는 식으로 넘기면 JS로 넘어오는 시점에서 그게 불리언이 될 가능성이 있습니다. 제 기억에 PHP AJAX는 return을 하면 안되고 echo로 값을 보내야 합니다. echo json_encode(배열) 써보세요. |
째리
/
2019/01/18 13:07:46 /
추천
0
return 0은 text로 받을때 테스트한거구요. 지금 따로 분리해서해보니 json사용안하고 일반text로는 정상적으로 작동됩니다. 하지만 json이문제에요.. 중복된 아이디일경우 echo로 인코드되는데 사용가능한아이디를 적으면 먹통됩니다.. |
째리
/
2019/01/18 13:09:23 /
추천
0
public function json($method){ switch($method){ // if부분은 작동됨 (중복될경우) else부분이 자꾸 false로넘어감 case "idCheck": $UID = $this->input->post('UID'); $user = $this->user_model->getUserID(array('UID'=>$UID)); if($user->UID == $UID){ $result = ['success' => false]; echo json_encode($result); }else{ $result = ['success' => true]; echo json_encode($result); } break; // 작동됨 case "idCheckT": $UID = $this->input->post('UID'); $user = $this->user_model->getUserID(array('UID'=>$UID)); if($user->UID == $UID){ return 0; }else{ return 1; } break; } }
|
하마쿵쿵
/
2019/01/18 15:49:35 /
추천
0
json_encode 옵션으로 JSON_UNESCAPED_UNICODE 추가해서 시도해 보세요
|