Ir para conteúdo

POWERED BY:

Arquivado

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

Pedro Gabriel

[Resolvido] PHP, jquery e mysql - form submit

Recommended Posts

oi pessoas,

lá estava eu aprendendo ajax quando vi que jquery era mais facil

então fui tentar fazer com jquery...

mais ai me veio um problema:

ele só quer mostrar as mesagens do print quando eu clico no botão

se eu aperto "enter" no formulario, nada acontece.

 

Alguem sabe me dizer o motivo?

 

index.html

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax teste</title>
<script src="js/jquery.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript" language="javascript" src="js/ajaxpost.js"></script>
</head>

<body>
<form id="form1" action="#" method="post">
<table width="200" border="0">
 <tr>
   <td align="left"><label for="nome">Nome: </label></td>
   <td align="left"><input type="text" name="nome" id="nome" /></td>
 </tr>
 <tr>
   <td align="left"><label for="message">Mensagem: </label></td>
   <td align="left"><label for="message"></label>
     <textarea name="message" id="message" cols="21" rows="2"></textarea></td>
 </tr>
 <tr>
   <td> </td>
   <td align="right"><input type="button" value="Enviar" id="enviar" /></td>
 </tr>
</table>
</form>
<div id="resposta"></div>
</body>
</html>

 

 

ajaxpost.js

$(document).ready(function() {
$("#enviar").click(function() {
	var nome = $("#nome");
	var nomePost = nome.val();
	var message = $("#message");
	var messagePost = message.val(); 
	$.post("enviar.php", {nome: nomePost, message: messagePost},
	function(data){
	 $("#resposta").html(data);
	 }
	 , "html");
});
});

 

enviar.php

<?php 
$nome = $_POST['nome'];
$message = $_POST['message'];

if (!($nome) || !($message)){
print "Preencha todos os campos."; exit();
}

$conexao = mysql_pconnect("localhost","root","senha") or die (mysql_error());
$banco = mysql_select_db("db2");

$nome = mysql_real_escape_string($nome);
$message = mysql_real_escape_string($message);

$insert = mysql_query("INSERT INTO teste (nome,message) values ('{$nome}','{$message}')");
mysql_close($conexao);
if($insert) {
print "ok";
}else {
print "erro";
}
?>

 

 

no ajaxpost.js eu tentei mudar o

$("#enviar").click(function() {

por

$('#form1').submit(function() {

 

ai ele inseria os dados no banco de dados

mais não fazia os prints do php

 

alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para funcionar ao pressionar a tecla ENTER você deve usar o submit, se usar click obviamente só irá funcionar se o usuário clicar no botão.

 

Agora o problema de não estar aparecendo a mensagem na tela eu acredito que seja pelo fato da página estar sendo recarregada ao submeter o formulário, para que isso não aconteça você deve dar um "return false;" na função.

 

Tente assim:

 

$(document).ready(function() {
$('#form1').submit(function() {
	var nome = $("#nome");
	var nomePost = nome.val();
	var message = $("#message");
	var messagePost = message.val();
	$.post("enviar.php", {nome: nomePost, message: messagePost},
	function(data){
		$("#resposta").html(data);
	}
	, "html");
	return false;
});
});

 

E no botão em vez de usar assim:

 

<input type="button" value="Enviar" id="enviar" />

 

Use assim:

 

<input type="submit" value="Enviar" id="enviar" />

 

Um abraço!

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.