Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal!
Bom, estou com uma dúvida...
Tenho um código que ele somente retorna a função success, mesmo não enviando os dados para o banco de dados.
Aqui está o ajax:
<script type="text/javascript">
$(document).ready(function(){
$('#contact_for').validate({
rules: {
//...
},
messages: {
//...
},
submitHandler: function( form ){
var dados = $( form ).serialize();
$.ajax({
type: "POST",
url: "processarcontato.php",
data: dados,
beforeSend: function(){
$("#contact_for").fadeOut(700, function(){
$("#loadingr").fadeIn(700);
});
},
complete: function(){
$("#loadingr").fadeOut(700);
},
success: function(){
$("#successr").fadeIn(700).delay(10000).fadeOut(700, function(){
$('#contact_for')[0].reset();
$("#contact_for").fadeIn(700);
});
},
error: function(){
$("#loadingr").fadeOut(700, function(){
$("#errorr").fadeIn(700).delay(10000).fadeOut(700, function(){
$('#contact_for')[0].reset();
$("#contact_for").fadeIn(700);
});
});
}
});
return false;
}
});
});
</script>
E o processarcontato.php:
<?php
include "conexao.php";
$nome2 = utf8_decode($_POST['nome2']);
$email2 = utf8_decode($_POST['email2']);
$assunto2 = utf8_decode($_POST['assunto2']);
$mensagem2 = utf8_decode($_POST['mensagem2']);
$enviar = "INSERT INTO testeh (nome, email, assunto, mensagem) VALUES ('$nome2', '$email2', '$assunto2', '$mensagem2')";
$success = mysql_query($enviar);
if($success == 1){
echo "true";
}else{
echo "false";
}
?>
Eu tirei todo o código da página processarcontato.php e mesmo assim continua retornando true...
Obrigado pela atenção pessoal.
Sim, entendi.
Obrigado pela resposta.
Fiz isto aqui:
<script type="text/javascript">
$(document).ready(function(){
$('#contact_for').validate({
rules: {
//...
},
messages: {
//...
},
submitHandler: function( form ){
var dados = $( form ).serialize();
$.ajax({
type: "POST",
url: "processarcontato.php",
data: dados,
beforeSend: function(){
$("#contact_for").fadeOut(700, function(){
$("#loadingr").fadeIn(700);
});
},
success: function(data){
if(data=='true'){
setTimeout('$("#loadingr").fadeOut(700)', 1000), function(){
setTimeout('$("#successr").fadeIn(700).delay(10000).fadeOut(700)', 1000), function(){
$("#contact_for")[0].reset();
$("#contact_for").fadeIn(700);
}
}
}else{
$("#loadingr").fadeOut(700, function(){
$("#errorr").fadeIn(700).delay(10000).fadeOut(700, function(){
$("#contact_for")[0].reset();
$("#contact_for").fadeIn(700);
});
});
}
},
error: function(data){
setTimeout('$("#loadingr").fadeOut(700)', 1000), function(){
setTimeout('$("#successr").fadeIn(700).delay(10000).fadeOut(700)', 1000), function(){
$("#contact_for")[0].reset();
$("#contact_for").fadeIn(700);
}
}
}
});
return false;
}
});
});
</script>
Mas está acontecendo algum erro, pois após fazer o fadeOut() da div carregando, a de sucesso não aparece...
Fiquei horas tentando solucionar este erro mas não consegui nada.
Poderia me ajudar?
Obrigado!!
retira esse setTimeout()
apenas o .delay() já resolve.
Ah sim.
Então fiz assim:
success: function(data){
if(data=='true'){
$("#loadingr").fadeOut(700, function(){
$("#successr").fadeIn(700).delay(10000).fadeOut(700, function(){
$("#contact_for")[0].reset();
$("#contact_for").fadeIn(700);
});
});
}else{
$("#loadingr").fadeOut(700, function(){
$("#errorr").fadeIn(700).delay(10000).fadeOut(700, function(){
$("#contact_for")[0].reset();
$("#contact_for").fadeIn(700);
});
});
}
},
error: function(error){
$("#loadingr").fadeOut(700, function(){
$("#errorr").fadeIn(700);
$("#teste").html(error);
$("#error").delay(10000).fadeOut(700, function(){
$("#contact_for")[0].reset();
$("#contact_for").fadeIn(700);
});
});
}
Deu certo, mas não haverá algum conflito?
E como posso testar a function(error)?
Deu certo, mas não haverá algum conflito?
oq exatamente você chama de conflito ?
>
E como posso testar a function(error)?
remova o arquivo php de lugar.ai vai retornar 404, vai falhar a requisição, e deverá cair no error:
qndo for assim, poste apenas o trecho de código q estamos olhando, e não tudo isso ai.
Obrigado pela resposta.
Agora está tudo certo.
E me desculpe pelo código, não percebi... :P
Sobre o conflito, digo que se teria alguma possibilidade de algum navegador entender o script de alguma outra maneira, mas acho que isso não vai acontecer não...
Muito obrigado.
Resolvido! :lol:
sempre vai cair no success.
só não cai no success, se a requisição falhar, e não se o retorno não for positivo.
oq você precisa fazer, é testar o retorno: