Processar uma pagina com Jquery e mostrar o retorno
Bom dia eu tenho uma funçã jquery que envia dados de uma pagina para outra via post e retorna o resultado dela na mesma página desta forma:
$("#form_comentario").validate({
// Define as regras
rules:{
"nome":{
// campoNome será obrigatório (required) e terá tamanho mínimo (minLength)
required: true, minlength: 5
},
"msg":{
// campoMensagem será obrigatório (required) e terá tamanho mínimo (minLength)
required: true, minlength: 5
}
},
// Define as mensagens de erro para cada regra
messages:{
"nome":{
required: "Digite o seu nome",
minlength: "O seu nome deve conter, no mínimo, 5 caracteres"
},
"msg":{
required: "Digite o seu comentário",
minlength: "O seu comentário deve conter, no mínimo, 5 caracteres"
}
},
submitHandler: function(){
//Função mural de recados
var nome = $('#nome').val();
var msg = $('#msg').val();
$(".formulario_comentario").html('<span id="spanEnviandoComentario"><img src="imagens/loader.gif" alt="" /></span>');
$.post('cadastra_comentario.php', {
nome_post: nome,
msg_post: msg,
}, function(res_cadastra){
$(".formulario_comentario").html(res_cadastra);
$.post('atualiza_comentario.php', function(atualiza_comentarios){
$("#comentarios ul").html(atualiza_comentarios);
});
});
return false;
}
});
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<?php
require_once 'database/mysql.php';
$db = new Mysql();
?>
</head>
<body>
<div id="box">
<div id="comentarios">
<h1>Últimos Comentários</h1>
<ul>
<?php
$selecionaComentarios = $db->query("SELECT * FROM comentarios ORDER BY comentario_id DESC LIMIT 30")->fetchAll();
$contarComentarios = $db->rowCount();
if($contarComentarios == 0){
echo "
<li><strong>Portal da Ressaca - Em: " . date('d/m/Y') ." - Disse: </strong>
<span>Nenhum comentário até o presente momento. Seja o primeiro a comentar!!! </span>
</li>
";} else{
if ($db->rows >= 1) {
$comentarios = $db->data;
foreach ( $comentarios as $res_comentario )
{
$c = ( object ) $res_comentario;
?>
<li><strong><?= utf8_decode($c->comentario_nome) ?> - Em: <?= date('d/m/Y H:i:s', strtotime($c->comentario_hora));?> - Disse: </strong>
<span> <?= utf8_decode($c->comentario_msg) ?> </span>
</li>
<?php
}
}
}
?>
</ul>
</div><!--// fecha comentários -->
<div id="formulario_comentario" class="formulario_comentario">
<form id="form_comentario" name="form_comentario" >
<div class="inputs">
<span id="labelComentarios"><div><label for="nome" >Nome:</label></div>
<input type="text" name="nome" id="nome" maxlength="50" ></input></label>
<span id="labelComentarios"><div><label for="msg">Comentário:</label></div>
<textarea name="msg" cols="1" rows="1" id="msg"></textarea></span>
</div>
<br/>
<input id="botoesComentarios" type="submit" name="enviar" value="Enviar" class="btn" />
<input id="botoesComentarios" type="reset" name="limpar" value="Limpar" />
</form>
</div><!--// fecha formulario -->
</div>
</body>
</html>
<?php @header('Content-Type: text/html; charset=ISO-8859-1', true);
require_once 'database/mysql.php';
$db = new Mysql();
$nome = @$_POST['nome_post'];
$nome = wordwrap($nome, 70, " ",1);
$msg = @$_POST['msg_post'];
$msg = wordwrap($msg, 70, " ",1);
$hora = date('Y-m-d H:i:s');
if ((empty($nome)) or (empty($msg))) {
$cadastra = "";
}else
{
$cadastra = $db->query("INSERT INTO comentarios (
comentario_nome, comentario_msg, comentario_hora
) VALUES (
'$nome', '$msg', '$hora'
)");
}
if ($cadastra){
echo utf8_decode('<span id="spanEnviandoComentario">Comentário enviado com sucesso!</span>');
echo utf8_decode('<span id="spanEnviaNovoComentario"><a href="#" onclick="abrirPag(\'comentario.php\');">Faça outro comentário</a></span>');} else{
echo utf8_decode('<span id="spanEnviandoComentario">Erro ao enviar comentário!</span>');
echo utf8_decode('<span id="spanEnviaNovoComentario"><a href="#" onclick="abrirPag(\'comentario.php\');">Tente novamente</a></span>');
}?>
Ou seja a função é ativada quando eu clico no botão enviar e a função processa a página comentario_cadastra e joga a mensagem caso de certo para a mesma página onde eu estou enviado....
estou tentando fazer a mesma coisa para enviar e-mail porem não estou conseguindo e acho que o problema é na função pois ela fica travada no icone carregando.
Estou fazendo da seguinte forma a função:
$("#form_contato").validate({
// Define as regras
rules:{
"nome":{
// campoNome será obrigatório (required) e terá tamanho mínimo (minLength)
required: true, minlength: 5
},
"email":{
// campo email será obrigatório (required) e terá tamanho mínimo (minLength)
required: true, minlength: 5, email: true
},
"assunto":{
// campo assunto será obrigatório (required) e terá tamanho mínimo (minLength)
required: true, minlength: 5
},
"msg":{
// campoMensagem será obrigatório (required) e terá tamanho mínimo (minLength)
required: true, minlength: 5
}
},
// Define as mensagens de erro para cada regra
messages:{
"nome":{
required: "Digite o seu nome",
minlength: "O seu nome deve conter, no mínimo, 5 caracteres"
},
"email":{
required: "Digite o seu e-mail",
minlength: "O seu e-mail deve conter, no mínimo, 5 caracteres",
email: "O campo e-mail deve conter um email válido"
},
"assunto":{
required: "Digite o assunto",
minlength: "O assunto deve conter, no mínimo, 5 caracteres"
},
"msg":{
required: "Digite a sua mensagem",
minlength: "A sua mensagem deve conter, no mínimo, 5 caracteres"
}
},
submitHandler: function(){
var enviar = $('#enviar').val();
var nome = $('#nome').val();
var email = $('#email').val();
var assunto = $('#assunto').val();
var msg = $('#msg').val();
$(".formulario_contato").html('<span id="spanEnviandoContato"><img src="imagens/loader.gif" alt="" /></span>');
$.post('envia_contato.php', {
enviar_post: enviar,
nome_post: nome,
email_post: email,
assunto_post: assunto,
msg_post: msg,
});
return false;
}
});
Alguem pdoeria dar uma ajuda?
Discussão (1)
Carregando comentários...