2014-09-01 3 views
0

EDIT : Answers에 언급 된 PHP로 오류를 수정했지만 여전히 동일한 문제가 있습니다.

POST 요청이 실패하면 오류 메시지를 표시하고 실패하지 않으면 성공 메시지를 표시하려고합니다. 현재 성공 메시지를 올바르게 보여주고 있지만 콘솔에서도 SQL을 실패하게하면 아무 일도 일어나지 않습니다.

JQUERY : // 나는 불필요한 코드

제거한
 $("#form").validate({ 
     ignore:'', 
     errorPlacement: function(error, element) { 
      error.insertAfter(element.parent()); // <- make sure the error message appears after parent element (after textbox!) 
     }, 
     rules: { 
     }, 
     messages: { 
     }, 
     submitHandler: function(form) { 
      var datastring = $("#form").serialize(); 
      $.ajax({ 
      type: "POST", 
      url: "myscript.php", 
      data: datastring, 
      dataType:"json", 
      success: function (response) { 
       if(response.status === "success") { 
        window.alert(response.comment); 
       } else if(response.status === "error") { 
        window.alert(response.comment); 
       } 
      } 
     }); // close $.ajax 
    } // close submit handler 
}); //end validate 

PHP :

if($row = sasql_fetch_array($insert)) 
{ 
    //success message 
    $arr = array ('status'=>'success','comment'=> $custid); 
    echo json_encode($arr); 


} else { 
    //error message 
    $arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.'); 
    echo json_encode($arr); 
} 

사람이 문제가 여기에있을 수있는 일에 대해 어떤 생각을 가지고 있습니까? 내가 말했듯이 을 success 함수 바로 뒤에 추가하면 오류 배열에 아무 것도 반환되지 않습니다. 감사합니다

+0

입니까? –

+0

예 - 응답을 얻지 만 sql이 실패하면 성공합니다. – Janey

+0

문자열 연결에'+'를 사용하고 있습니까? 그것은'.'이어야합니다 ('다시 시도하십시오 '+ $ custid'). – Stryner

답변

0

문제는 귀하의 PHP 파일입니다. 오류 부분에 구문 오류가 있습니다. 그러나 성공하지 못했습니다. 원하지 않는 것을 사용하고} 대신 +를 사용하여 문자열을 연결하십시오. 운영자. 또한 배열 근처의 빈 공간을 제거하십시오. 당신은 당신이 concatenation operator in PHP입니다 + 대신 .을 사용하고있는 것을 볼 수 있습니다

$arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.'+$custid); 

:이 라인을 보면

if($row = sasql_fetch_array($insert)) 
{ 
    //success message 
    $arr = array ('status'=>'success','comment'=> $custid); 
    echo json_encode($arr); 
} 

} else { 
    //error message 
    $arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.'+$custid); 
    echo json_encode($arr); 
} 

if($row = sasql_fetch_array($insert)) 
{ 
    //success message 
    $arr = array('status'=>'success','comment'=> $custid); 
    echo json_encode($arr); 

} else { 
    //error message 
    $arr = array('status'=>'error','comment'=>'There has been an error. Please try again.'.$custid); 
    echo json_encode($arr); 
} 
+0

안녕하세요, 귀하의 의견을 보내 주셔서 감사합니다 ...이 문제를 해결하고 아직 아무것도 반환되지 않습니다 ...! – Janey

0

을해야합니다.

+0

나는 이것을 고쳤으며 아무런 변화가 없었다 ....? – Janey

0

당신이 아약스 전화를 걸 때, 올바른 PHP 코드 서버의 응답입니다

if($row = sasql_fetch_array($insert)) 
{ 
    //success message 
    $arr = array ('status'=>'success','comment'=> $custid); 
    echo json_encode($arr); 

} else { 
    //error message 
    $arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.' . $custid); 
    echo json_encode($arr); 
} 
+0

안녕하세요 ... 이러한 변경 사항을 모두 작성했지만 여전히 동일한 문제가 있습니다 ... – Janey

+0

그러면이 조건 이전에 오류가있을 수 있습니다. 이 줄 앞에 스크립트를 디버깅해야합니다. –