질문Q #2489
jquery를 이용한 ajax에 대해 질문 있습니다.
sjalove2013-12-18 11:51:51
 ID 중복 확인 기능을 구현할려고 합니다만

일단 소스를 보여드리겠습니다.

view페이지
생략..

var ajfData = {
 sqlkey : 'chkMemID',
 MEM_ID : $("#MEM_ID").val()
 };
    
 $.ajax({
 type:"post",
 url :"/bbs/cProductbbs/admMemberProcess/",
 data: ajfData,
 success : function(response) {
 
        if(response=="true") {
  chkVal[removed] = "사용 가능한 회원 아이디 : "+$("#MEM_ID").val();
  chkResult[removed] = $("#MEM_ID").val();
  $("#MEM_PW").focus();
 }
 else {
  chkVal[removed] = '회원 아이디가 중복되었습니다.';
  chkResult[removed] = "";
  $("#MEM_ID").val("");
  $("#MEM_ID").focus();
 }
     });
   return false;
  });
});


컨트롤러


  function admMemberProcess(){
    
    $sqlkey = get_seg("sqlkey");
   
 if ($sqlkey == "chkMemID") 
 {
 $MEM_ID = get_seg("MEM_ID");
    
 $data_view = $this->product->get_data("GD_ADMIN_MEMBER", array("ADM_ID" => $MEM_ID));  //모델로 가서 ID 맞는지 확인 구간

  
 if ($data_view["MEM_ID"] == "")
   echo "true";
 else
   echo "false";
 }

        생략........
  }  





ID 중복확인 클릭을 하면 무조건 "회원 아이디가 중복되었습니다" 라고 나오네요.

if(response=="true")  <-- 이것이 true로 안나오고 false가 나온다는뜻인데..ㅠ.ㅠ

막상 질문도 어떻게 해야할지 모르겠네요. 출력할꺼 다 해봐도 문제가 없어 보이는데 ㅠ,ㅠ

이게 잘못된 원인을 모르는 질문하는것도 어이없으시겠지만. ㅠ,ㅠ

왜 false만 나오는건지 ㅠ,ㅠ  








답변13
#1 변종원(웅파) 2013-12-18 12:30:56
echo "false"; -> false가 화면에 출력됩니다.

게시판 이동합니다.


#2 sjalove 2013-12-18 12:38:24
 네 분명 false가 출력되어서 "회원 아이디가 중복되었습니다" 나오는데요 DB상에서는 존재 하지 않는데도 

false가 출력이 되네요 ㅠ,ㅠ
#3 변종원(웅파) 2013-12-18 16:50:34
$data_view = $this->product->get_data("GD_ADMIN_MEMBER", array("ADM_ID" =>$MEM_ID));


if ($data_view["MEM_ID"] == "")



->

if(count($data_view) == 0)

#4 sjalove 2013-12-18 17:08:03
제가 MEM_ID를  ADM_ID 이것으로 전부 바꿨습니다. 혹시 모르까봐.
#5 sjalove 2013-12-18 18:01:11
 

ADM_ID값이 없는데 이거 통 모르겠네요 ㅠ,ㅠ
#6 sjalove 2013-12-18 18:04:15
 아 이제 ADM_ID값이 나오네요 그런데  DB상 값이 없는데 왜 "중복 되었다고" ㅠ,ㅠ false값이 나오네요 ㅠ
#7 변종원(웅파) 2013-12-18 18:06:59
답변을 안보시는 느낌이...

if문 로직을 바꾸셔야...

 
#8 sjalove 2013-12-18 18:16:53
 죄송하지만 

if(count($data_view) == 0)
   
 echo "true";
else
 echo "false";
이렇게 하라는 뜻인가요? 효과가 없어서 ㅠ,ㅠ
#9 sjalove 2013-12-18 18:19:02
 이해가 안가는데 왜 count로  if문을 할려고 하시는지.
#10 한대승(불의회상) 2013-12-18 18:20:50
프로파일러 켜서 구체적으로 sql문이 어떤식으로 나오는지 확인해 보세요.
ajax라 해서 별다른게 있는것은 아니니 테스트 하실때는 주소창에 직접 주소를 타이핑해서 확인 하시면 됩니다.

 
#11 변종원(웅파) 2013-12-18 18:25:17
쿼리문 실행하고 중복된 결과가 있으면 저 값이 1 나옵니다.

또는 쿼리 실행할때 num_row() 라는 ci자원 사용해도 되구요

 
#12 sjalove 2013-12-18 18:28:59
확인한 결과  true값이 나오긴 나옵니다. 그런데 왜  false값 나오는듯이 "중복~!@#" 이라고 나오네요. 좀만 하면 될꺼같습니다. 감사합니다.
#13 변종원(웅파) 2013-12-18 19:11:36
true false로 하지 말고 다른 단어로 바꿔보세요.