Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Vital

inserir dado no banco de dados utilizando ajax e php

Recommended Posts

Oi galera tudo bem?

fiz os seguintes códigos para inserir dados no banco de dados.

apenas pra aprender a mecher com ajax, mas não tá inserindo os dados no banco.

então gostaria de aber o que esta de errado.

index.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" /><script src="ajax.js" type="text/javascript"></script><script type="text/javascript">function cadastra() {		var campo = document.form1.nome.value;		remoto	= new ajax();		remoto.enviar("cadastra.php" + "?" + "nome=" + campo, "GET", false );		return false;	}}</script><title>Untitled Document</title></head><body><form enctype="multipart/form-data" id="form1"><input type="text" name="texto" id="texto" /><input type="button" value="enviar" id="enviar" onclick="cadastra()"/></form></body></html>
cadastra.php

<?php	$nome = $_REQUEST['nome'];	$link = mysql_connect("localhost","root","") or die (mysql_error());	mysql_select_db("testa",$link) or die (mysql_error());		mysql_query("INSERT INTO tabela ('nome') VALUES($nome)") or die (mysql_error());?>
ajax.js

script feito pelo Fabyo

function ajax() {};//metodo iniciarajax.prototype.iniciar = function() {//logo abaixo tentamos estanciar o objeto XMLHttpRequest() para o IE e os demais navegadores	try{		this.xmlhttp = new XMLHttpRequest();	}catch(ee){		try{			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");		}catch(e){			try{				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");			}catch(E){				this.xmlhttp = false;			}		}	}	return true;}//metodo oculpadoajax.prototype.ocupado = function() {	estadoAtual = this.xmlhttp.readyState;	return (estadoAtual && (estadoAtual < 4));}//metodo processaajax.prototype.processa = function() {	if (this.xmlhttp.readyState == 4 && this.xmlhttp.status == 200) {		return true;	}}//metodo envia esperando a url, o metodo get ou post e o modo true ou falseajax.prototype.enviar = function(url, metodo, modo) {//se nao existir o objeto xmlhttp ele sera criado com o metodo iniciar	if (!this.xmlhttp) {		this.iniciar();	}//se nao estiver oculpado	if (!this.ocupado()) {//se o metodo passado for get		if(metodo == "GET") {			this.xmlhttp.open("GET", url, modo);			this.xmlhttp.send(null);		} else {//se for post					this.xmlhttp.open("POST", url, modo);			this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");			this.xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");			this.xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");			this.xmlhttp.setRequestHeader("Pragma", "no-cache");			this.xmlhttp.send(url);		}	//se estiver ok ele retorna o resultado e ja utilizamos um modo para receber acentos// usando a função unescape e substituindo os + por espaços mesma coisa que usar urldecode() do php		if (this.processa) {//recebe o resultado da pagina php			return unescape(this.xmlhttp.responseText.replace(/\+/g," "));		}	}	return false;}
desde já, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem 2 erros no seu sistema

 

1 erro:

 

function cadastra() {

var campo = document.form1.nome.value;

remoto = new ajax();

remoto.enviar("cadastra.php" + "?" + "nome=" + campo, "GET", false );

return false;

}

}

 

ta sobrando 1 }

 

2 erro:

 

var campo = document.form1.nome.value;

 

 

você ta chamando campo "nome" e no campo text ta como "texto"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, fiz o que você me disse mas não deu certo então gostaria de saber se isso pode ser cupa do meu navegador.

meu navegador é Firefox 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

sei que você ta fazendo isso só pra aprender a mecher com ajax, mas pra deixar claro nao faz sentido usar o ajax só pra gravar dados no banco

se fosse para mostrar o resultado na mesma tela tudo bem, mas só cadastrar nao precisa do ajax

Compartilhar este post


Link para o post
Compartilhar em outros sites

tmferreira, eu fiz a mudança no formulário, e apareceu esse erro:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''nomes') VALUES(carlos henrique)' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php	$nome = $_REQUEST['nome'];	$link = mysql_connect("localhost","root","") or die (mysql_error());	mysql_select_db("testa",$link) or die (mysql_error());		mysql_query("INSERT INTO tabela ('nome') VALUES('$nome')") or die (mysql_error());?>
pronto

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.