2014-09-01 4 views
0

EDIT: Я исправил ошибки с 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); 
} 

Кто-нибудь есть какие-либо идеи о том, что этот вопрос может быть здесь? Как я уже сказал, если я добавлю console.log(JSON.stringify(response)); сразу после функции success, ничего не возвращается в массив ошибок. Thanks

+0

что ответ от сервера, когда вы делаете вызов AJAX? –

+0

Да - для успеха, если sql терпит неудачу, хотя я не получаю ответа. – Janey

+0

Вы используете '+' для конкатенации строк? Это должно быть '.' (Это в' Пожалуйста, попробуйте еще раз. '+ $ Custid') – Stryner

ответ

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); 
} 

должен быть

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

Если вы посмотрите на эту линию:

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

Вы увидите, что вы используете + вместо ., который является concatenation operator in PHP.

+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

, тогда может быть ошибка перед этим условием; поэтому нужно отлаживать свой скрипт до этих строк –