2015-01-29 4 views
0

데이터베이스에 데이터를 게시하고 있지만, 전에 PHP로 설정하여 문제를 에코합니다. 'data! ='signup success '안에 if를 실행해야하는데, 작동하지 않습니다. 어떤 아이디어?중첩 된 if 문이 실행되지 않습니다.

if($u == ""){ 
    $data = array("response" => "Please create a username"); 
    exit(json_encode($data)); 
} 

당신이 당신의 아약스 요청의 응답을 확인 할 수 있도록 허용 :

PHP :

if($u == ""){ 
    echo "Please create a username"; 
    exit(); 
} 

JS : 데이터를 인코딩

var submitBtn = $('#signUpBtn'); 

    submitBtn.on('click', function() { 

     var fn = $('#fname'), 
      ln = $('#lname'), 
      u = $('#uname'), 
      e = $('#email'), 
      p = $('#pword1'), 
      p2 = $('#pword2'), 
      fnVal = fn.val(), 
      lnVal = ln.val(), 
      uVal = u.val(), 
      eVal = e.val(), 
      pVal = p.val(), 
      p2Val = p2.val(); 

     $.post('phpsrc/parsers/signUp.php', 
      {fn: fnVal, ln: lnVal, u: uVal, e: eVal, p: pVal}, 

      function(data) { 

       if (data != 'signup success') { 
        if (data === 'Please create a username') { 
         alert('uname'); 
        } 
       } else { 

       } 
      } 
     ); 
    }); 
+7

if (data.trim() === 'Pleas ....'을 시도하고 공백 문제가 있는지 확인하십시오. sidenote로서 jQuery는'serialize' 메소드를 가지고 있습니다 – adeneo

+0

당신의 ajax 요청은 실패합니다 : "jQuery.post()로 요청이 에러 코드를 반환하면, 스크립트가 global .ajaxError() 메소드를 호출하지 않으면 자동으로 실패합니다. jQuery.post()에서 반환 된 jqXHR 객체의 .error() 메서드는 오류 처리에도 사용할 수 있습니다. " –

+1

본문에서 문자열의 유효성을 검사하는 대신 JSON으로 인코딩 할 것입니다. 그렇지 않으면 쉽게 엉망이 될 것입니다. – Richard

답변

1

당신은 것 더 잘 JSON 이렇게 :

function(data) { 

    if (data.response !== 'signup success') { 
     if (data.response == 'Please create a username') { 
      alert('uname'); 
     } 
    } else { 
     alert('something'); 
    } 
} 
+1

나는 100 % 동의하지만, OP는 http 2xx 응답을 얻지 못합니다. jQuery 오류 처리를 포함하도록 예제를 확장 할 수도 있습니다 – Basic

+0

Touche @Basic, 나는 그 애비뉴를 생각하지 않았습니다. 곧 추가 할 것이다 :) – Darren

+0

나는 당신의 예제를 구현했다. 그러나 여전히 나에게 "경고 (uname)"를주지는 않는다. ". – Josh

관련 문제