Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Stevanato

Submit com JQuery

Recommended Posts

alaguem sabe onde pode ta o erro aqui pois ele simplesmente não funciona, não da erro, não executa naum faz nada...

 

<script type="text/javascript" language="javascript" src="js/jquery-1.js"></script>
<script type="text/javascript" language="javascript">
	$(function($) {
		$("#contato").submit(function() {
		var nome = $("#NOME").val();
		var assunto = $("#ASSUNTO").val();
		var email = $("#EMAIL").val();
		var mensagem = $("#TEXTO").val();

		$("#status").html("<img src='imagens/loading.gif' alt='Enviando' />");
		$.post('includes/enviar.php', { nome: nome, assunto: assunto, email: email, mensagem: texto }, 

		function(resposta) {
			$("#status").slideDown();
			if (resposta != false) {
				$("#status").html(resposta);
			} 
			else {
				$("#status").html("Mensagem enviada com sucesso!");
				$("#NOME").val("");
				$("#ASSUNTO").val("");
				$("#EMAIL").val("");
				$("#TEXTO").val("");
			}
		});
	});
});
</script>

<form id="contato" action="javascript:func();" method="post" >
			<fieldset>
				<legend></legend>
				<ol>
					<li><label for="NOME">Nome:</label><span class="sPOS"><input type="text" name="NOME" accesskey="n" id="NOME" /></span> <span id="campo_NOME"></span></li>
					<li><label for="ASSUNTO">Assunto:</label><span class="sPOS"><input type="text" name="ASSUNTO" accesskey="a" id="ASSUNTO" /></span></li>
					<li><label for="EMAIL">Email:</label><span class="sPOS"><input type="text" name="EMAIL" accesskey="e" id="EMAIL" /></span></li>
					<li><label for="TEXTO">Mensagem:</label><span class="sPOS"><textarea name="TEXTO" accesskey="m" id="TEXTO" />EM MANUTENÇÃO...</textarea></span></li>
				</ol>
				<button type="submit" onclick="this.disabled=true; this.form.submit();" id="enviar" class="botao">Enviar</button> <button type="reset" id="limpar">Limpar</button><br/>
			</fieldset>
		</form>

enviar.php

<?php
require_once("teste/conexao.php");

$data		= $date("d.m.Y");
   $cwva_nome		= $_POST['NOME'];
$assunto	= $_POST['ASSUNTO'];
   $email		= $_POST['EMAIL'];
   $mensagem	= $_POST['MENSAGEM'];

   $query = "INSERT INTO recados (ID,DATA,LIDO,NOME,ASSUNTO,EMAIL,MENSAGEM) VALUES ('','$data','nao','$nome','$assunto','$email','$mensagem')";
   mysql_query($query) or die (mysql_error());

   mysql_close();
?>

 

desde ja muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque:

<form id="contato" action="javascript:func();" method="post" >

por:

<form id="contato" action="" method="post" >

e deixe o seu js assim:

 

        <script type="text/javascript" src="js/jquery-1.js"></script>
       <script type="text/javascript">
               $(function($) {
                       $("#contato").submit(function() {
                       var nome = $("#NOME").val();
                       var assunto = $("#ASSUNTO").val();
                       var email = $("#EMAIL").val();
                       var mensagem = $("#TEXTO").val();

                       $("#status").html("<img src='imagens/loading.gif' alt='Enviando' />");
                       $.post('includes/enviar.php', { nome: nome, assunto: assunto, email: email, mensagem: texto }, 

                       function(resposta) {
                               $("#status").slideDown();
                               if (resposta != false) {
                                       $("#status").html(resposta);
                               } 
                               else {
                                       $("#status").html("Mensagem enviada com sucesso!");
                                       $("#NOME").val("");
                                       $("#ASSUNTO").val("");
                                       $("#EMAIL").val("");
                                       $("#TEXTO").val("");
                               }
                       });
                       return false;
               });
       });
       </script>

depois disso, debugue teu script.

 

Aperte Ctrl+Shift+J no Firefox, e veja quais erros aparecem.

Leituras:

http://wbruno.com.br/blog/2011/03/31/como-debugar-javascript-firefox-erros-comuns/

http://wbruno.com.br/blog/2011/04/14/como-debugar-ajax-firebug/

Compartilhar este post


Link para o post
Compartilhar em outros sites

me retorno os seguintes erros:

 

getAttributeNode() não deve ser mais usado. use getAttribute()

 

Erro: Image corrupt or truncated: <unknown>

Arquivo-fonte: <unknown>

Linha: 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui no enviar, faça o seguinte:

    $query = "INSERT INTO recados (ID,DATA,LIDO,NOME,ASSUNTO,EMAIL,MENSAGEM) VALUES ('','$data','nao','$nome','$assunto','$email','$mensagem')";
   mysql_query($query) or die (mysql_error());

   mysql_close();
   echo $query;
?>

você continua com problemas ?

 

e para debug:

function(resposta) {
   alert( resposta );

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca online para eu dar uma olhada, não vejo nada mais de crítico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazendo uns teste aqui no

<form action="javascript:func();">

percebi que não tem essa função chama "func();"...

ae no caso como faço pra chama a função

<script type="text/javascript">
               $(function($) {
                       $("#contato").submit(function() {
                       var nome = $("#NOME").val();
                       var assunto = $("#ASSUNTO").val();
                       var email = $("#EMAIL").val();
                       var mensagem = $("#TEXTO").val();

                       $("#status").html("<img src='imagens/loading.gif' alt='Enviando' />");
                       $.post('includes/enviar.php', { nome: nome, assunto: assunto, email: email, mensagem: texto }, 

                       function(resposta) {
                               $("#status").slideDown();
                               if (resposta != false) {
                                       $("#status").html(resposta);
                               } 
                               else {
                                       $("#status").html("Mensagem enviada com sucesso!");
                                       $("#NOME").val("");
                                       $("#ASSUNTO").val("");
                                       $("#EMAIL").val("");
                                       $("#TEXTO").val("");
                               }
                       });
                       return false;
               });
       });
       </script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazendo uns teste aqui no

<form action="javascript:func();">

percebi que não tem essa função chama "func();"...

sim, por isso q eu te disse para remover esse trecho do código

 

ae no caso como faço pra chama a função

já está sendo chamada.

 

para testar se está sendo chamada corretamente, coloque esse alert aqui:

$("#contato").submit(function() {
   alert( 'formulario foi enviado' );

clique no submit, e diga se aparece esse alert.

 

fique de olho para ver se aparecem novos erros depois de clicar no submit.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, continuando com o debug, retire o primeiro alerta, e coloque outro aqui:

 

function(resposta) {
  alert( resposta+' - '+typeof( resposta ) );

diga se aparece esse alert, e oq aparece nele.

 

você fez o debug de ajax, do tópico que linkei lá em cima ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tem para onde fugir agora.. oque você concluiu do debug ajax do post que linkei ?

 

coloque um link online para eu ver funcionando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Revivendo um tópico.. rs

 

Estou com problemas no mesmo código.

Não importa o que eu informe, ele sempre coloca a resposta "Categoria cadastrada com sucesso!"

Mas não executa meu insert quando informo a descrição e não mostra minha mensagem de erro.

Coloquei um alert(resposta) e ele sempre me retorna em branco.

 

Se existe alguma outra maneira de validar e mostrar a mensagem de erro dentro da div, alguém pode me dar uma luz, por favor?

 

Obrigada.

 

Tela

<?php

// VERIFICA SE O USUÁRIO ESTÁ LOGADO
session_start();
if(!isset($_SESSION['email']) and !isset($_SESSION['nome']) and !isset($_SESSION['idUsuario'])){

	header("Location: ../../index.php");
	exit();

}
include "../topo.php";		
?>

<!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" />
<title>Cadastro de Categoria</title>
<link type="text/css" href="../css/custom-theme/jquery-ui-1.8.20.custom.css" rel="Stylesheet" />
<link type="text/css" href="../css/forms.css" rel="Stylesheet" />
<link type="text/css" href="../css/listagem.css" rel="Stylesheet" />
<script type="text/javascript" src="../../js/jscolor/jscolor.js"></script>
<script type="text/javascript" src="../../js/ajax_interno.js"></script>
<script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../js/jquery-ui-1.8.20.custom.min.js"></script>
<script>
$(function() {
	$( "#tabs" ).tabs();
});
</script>
<script type="text/javascript">
		$(function($) {
				$("#formCategoria").submit(function() {
				var descricao = $("#descricao").val();
				var cor = $("#cor").val();					

				$("#status").html("<img src='../images/loader.gif' alt='Enviando' />");
				$.post('cadr_categoria.php', { descricao: descricao, cor: cor}, 

				function(resposta) {
					$("#status").slideDown();
					if (resposta != false) {
							$("#status").html(resposta);
					} 
					else {
							$("#status").html("Categoria cadastrada com sucesso!");
							$("#descricao").val("");
							$("#cor").val("");									
					}
				});
				return false;
		});
});
</script> 

</head>
<body>
<br/><br/>
<div class="conteudo">

	<div id="tabs">
		<ul>
			<li><a href="#tabs-1">Cadastrar Categoria</a></li>		
		</ul>
		<div id="tabs-1">
			<div id="status" style="display: none;"></div>
			<form id="formCategoria" action="" method="post">
			<table cellpadding="0" cellspacing="0" width="60%">					
				<tr>
					<td width="9%" height="49"><label for="descricao">Descrição</label></td>
					<td width="91%">
						<input id="descricao" name="descricao" type="text" size="50" onblur="validarDados('descricao', document.getElementById('descricao').value);" />
						<div id="campo_descricao"> </div>
					 </td>
				</tr>
				<tr>
					<td height="50"><label for="cor">Cor</label></td>
					<td><input name="cor" class="color {required:false,hash:true}" size="12" maxlength="7" type="text"></td>
				</tr>
				<tr>
					<td></td>
					<td>
						<input type="hidden" name="acao"  value="cadr"/>
						<input type="submit" class="submit" value="Salvar"/>
					</td>
				</tr>

			</table>
		</div>	
	</div>

</div>
   </form>

</body>
</html>

 

Tela de envio

<?php

// VERIFICA SE O USUÁRIO ESTÁ LOGADO
session_start();
if(!isset($_SESSION['email']) and !isset($_SESSION['nome']) and !isset($_SESSION['idUsuario'])){

	header("Location: ../../index.php");
	exit();

}	

if(isset($_POST['acao']) && $_POST['acao'] == 'cadr') {

       $descricao  = (!get_magic_quotes_gpc()) ? addslashes($_POST['descricao']) : $_POST['descricao'];        
	$cor = (!get_magic_quotes_gpc()) ? addslashes($_POST['cor']) : $_POST['cor'];			
	$usuario = $_SESSION['idUsuario'];

	if(file_exists("../../includes/init.php")) {
		require "../../includes/init.php";		
	} else {
		echo "Arquivo de configuracao nao foi encontrado";
		exit;
	}

	if ($descricao == "") {
		echo "Favor informar a descrição.";			
	} else{			
		// SE A COR NÃO FOR INFORMADA, COLOCAR UMA COR DEFAULT
		if($cor == ""){
			$cor = "#006699";
		}

		Abre_Conexao();

		$sql = "INSERT INTO CATEGORIA (
										DESCRICAO,
										COR,
										ID_USUARIO
									)
									VALUES (
										'$descricao',
										'$cor', 
										 $usuario
									)";

		$qr  = mysql_query($sql) or die(mysql_error());

		if($qr){
			echo '<script>alert("Cadastrado com sucesso!")</script>';
			header("Location: index.php");
		} else{
			echo '<script>alert("Erro ao cadastrar")</script>';
		}           						

	}



}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu recomendo fazer assim, colocar o alert na resposta e la no php, comentar tudo e escrever echo 'teste' e ver a resposta, e aos poucos ir descomentando, mas acho que o poblema pode ser esse header ali dentro da request

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.