Peguei um codigo pronto em: Codigos Prontos PHP, e fiz algumas alterações pra que ele me atenda as minhas necessidades. Porém não esta funcionando corretamente.
Esta apresentando os seguintes erros:
EXCLUIR -> exclui da tela, mas não ta sendo feito a exclusão no banco.
ALTERAR -> altera na tela mas não altera no banco.
Cadastrar -> Aparece uma mensagem: "Erro de tempo de execução - linha 50", mas mesmo assim está cadastrando no banco, porém somente os 2 primeiros campos o terceiro fica com valor 0.00.
Não estou achando o erro, já que num saco muito desse assunto, pois to fazendo ainda um curso de PHP. Se puder me ajudar ai.
<?php
//conecta ao banco de dados
mysql_connect("localhost", "root", "");
mysql_select_db("vigacaldeiraria");
//essa function eu coloquei para retornar o id e inserir na tabela, ela é desnecessaria para o funcionamento...coloquei porq no meu tava xD
function autoindex($tambem)
{
$query = mysql_query('SHOW TABLE STATUS LIKE "' . $tambem . '"');
$data = mysql_fetch_array($query);
return $data['Auto_increment'];
}
switch ($_REQUEST['acao'] == "add") {
//se acao = add então adicionar
case 'add' :
$valor = urldecode($_REQUEST['nome']);
$valor2 = urldecode($_REQUEST['img']);
$valor3 = urldecode($_REQUEST['preço']);
echo autoindex("tbl_produtos");
mysql_query("INSERT INTO tbl_produtos VALUES('','$valor','$valor2','$valor3')");
break;
//se acao = del então deletar
case 'del' :
$id = $_REQUEST['cod'];
mysql_query("DELETE FROM tbl_produtos WHERE cod = '$id'");
break;
//se acao = edit então editar
case 'edit' :
$id = $_REQUEST["cod"];
$valor = urldecode($_REQUEST["nome"]);
$valor2 = urldecode($_REQUEST["img"]);
$valor3 = urldecode($_REQUEST["preço"]);
mysql_query("UPDATE tbl_produtos SET nome = '$valor', img = '$valor2', preço = '$valor3' WHERE cod = '$id'");
break;
}
?>
crucifier.js
function ajax(){
};
ajax.prototype.iniciar = function(){
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;
}
ajax.prototype.ocupado = function() {
estadoAtual = this.xmlhttp.readyState;
return (estadoAtual && (estadoAtual < 5));
}
ajax.prototype.processa = function() {
if (this.xmlhttp.readyState == 5 && this.xmlhttp.status == 200) {
return true;
}
}
ajax.prototype.enviar = function(url, metodo, modo) {
if (!this.xmlhttp) {
this.iniciar();
}
if (!this.ocupado()) {
if(metodo == "GET") {
this.xmlhttp.open("GET", url, modo);
this.xmlhttp.send(null);
} else {
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);
}
if (this.processa) {
return unescape(this.xmlhttp.responseText.replace(/\+/g," "));
}
}
return false;
}
function editar(id) {
elem = document.getElementById('campo'+id); //primeiro campo
elem2 = document.getElementById('campo_d'+id); //segundo campo
elem3 = document.getElementById('campo_e'+id); //terceiro campo
bot = document.getElementById("enviar"+id); //botao de enviar
elem.innerHTML = "<input type=\"text\" value=\"" + elem.innerHTML + "\" id='"+id+"_c' />"; //inserir o primeiro input
elem2.innerHTML = "<input type=\"text\" value=\"" + elem2.innerHTML + "\" id='"+id+"d_c' />"; //inserir o segundo input
elem3.innerHTML = "<input type=\"text\" value=\"" + elem3.innerHTML + "\" id='"+id+"e_c' />"; //inserir o terceiro input
bot.innerHTML = '<a href="java script:editado(\''+ id +'\')">enviar</a>'; //inserir o botao de enviar a alteracao
}
function editado(id) {
envia = document.getElementById('enviar'+id); //span onde vai aparecer o botaozinho para enviar a alteracao
campo = document.getElementById(id+'_c').value; //primeiro campo
campod = document.getElementById(id+'d_c').value; //segundo campo
campoe = document.getElementById(id+'e_c').value; //terceiro campo
ecampo = escape(campo); //para não haver problemas de acentos e tal
ecampod = escape(campod); //para não haver problemas de acentos e tal
ecampoe = escape(campoe); //para não haver problemas de acentos e tal
document.getElementById('campo'+id).innerHTML = campo; //alterar o registro na pagina
document.getElementById('campo_d'+id).innerHTML = campod; //alterar o registro na pagina
document.getElementById('campo_e'+id).innerHTML = campoe; //alterar o registro na pagina
envia.innerHTML = '<a href="java script:editar(\''+id+'\')">alterar</a>'; //depois de enviar, mostrar de novo o botão de editar
xmlhttp = new ajax();
xmlhttp.enviar('crucifier.php?acao=edit&cod='+ id + '&nome='+ ecampo + '&img=' + ecampod + '&preço=' + ecampoe, "POST", false); //endereco para enviar a alteração
};
function addrow(id) {
tambem = document.getElementById('tabela'); //id da tabela
campo = document.getElementById('nome'); //primeiro campo
campod = document.getElementById('img'); //segundo campo
campoe = document.getElementById('preço'); //terceiro campo
var x=tambem.insertRow(-1); //inserir a linha
var y=x.insertCell(0); //inserir coluna 1
var z=x.insertCell(1); //inserir coluna 2
var w=x.insertCell(2); //inserir coluna 3
var k=x.insertCell(3); //inserir coluna 4
var b=x.insertCell(4); //inserir coluna 5
y.innerHTML=id; //na primeira coluna, inserir o id
z.innerHTML="<span cod=\"campo"+id+"\">"+campo.value+"</span>"; //na segunda coluna, inserir o nome
w.innerHTML="<span cod=\"campo_d"+id+"\">"+campod.value+"</span>"; //na terceira coluna, inserir o imagem
k.innerHTML="<span cod=\"campo_e"+id+"\">"+campoe.value+"</span>"; //na quarta coluna, inserir o preço
b.innerHTML='<span cod="enviar'+id+'"><a href="java script:editar(\''+id+'\')">alterar</a></span><br><a href="java script:;" onClick="deleterow(\''+id+'\', this.parentNode.parentNode.rowIndex);">del</a>'; //na quarta coluna, inserir as opções
}
function add() {
campo = document.getElementById('nome').value; //recupera primeiro campo
ecampo = escape(campo); //"escapa" primeiro campo
campod = document.getElementById('img').value; //recupera segundo campo
ecampod = escape(campod);//"escapa" segundo campo
campoe = document.getElementById('preço').value; //recupera terceiro campo
ecampoe = escape(campoe);//"escapa" terceiro campo
xmlhttp = new ajax();
id = xmlhttp.enviar('crucifier.php?acao=add&nome='+ ecampo + '&img=' + ecampod, + '&preço=' + ecampoe,"POST", false); //manda adicionar
addrow(id); //adiciona a linha com os campos
campo.value = ""; //limpa o campo1
campod.value = ""; //limpa o campo2
campoe.value = ""; //limpa o campo3
}
function apagar(id, rowIndex)
{
if (confirm('Tem certeza que deseja excluir este registro?'))
{
document.getElementById("tabela").deleteRow(rowIndex); //id da tabela + excluir linha
xmlhttp = new ajax();
xmlhttp.enviar('crucifier.php?acao=del&id='+ id, "POST", false); //envia o comando para deletar
}
}
Pergunta
Nill
Peguei um codigo pronto em: Codigos Prontos PHP, e fiz algumas alterações pra que ele me atenda as minhas necessidades. Porém não esta funcionando corretamente.
Esta apresentando os seguintes erros:
EXCLUIR -> exclui da tela, mas não ta sendo feito a exclusão no banco.
ALTERAR -> altera na tela mas não altera no banco.
Cadastrar -> Aparece uma mensagem: "Erro de tempo de execução - linha 50", mas mesmo assim está cadastrando no banco, porém somente os 2 primeiros campos o terceiro fica com valor 0.00.
Não estou achando o erro, já que num saco muito desse assunto, pois to fazendo ainda um curso de PHP. Se puder me ajudar ai.
O endereço onde esta o script, caso queiram ver o erro: http://www.vigacaldeiraria.com.br/pim/adm/
Ai vai as alterações do codigo que fiz:
estrutura da tabela
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> <title>Administração - Produtos</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script language="javascript" src="crucifier.js"></script> <style> * { text-align: center; } h1 { font-family: Verdana, Tahoma, Arial, Trebuchet MS, Sans-Serif, Georgia, Courier, Times New Roman, Serif; font-size: 20px; font-weight: bold; } th { background: #f3f3f3; height: 30px; } td { background: #f9f9f9; height: 20px; } </style> </head><body> <h1>Administração de Produtos via Ajax - By crucifier </h1> <table align="center" cellspacing="0" class="tbls-consulta" id="tabela" width="763"> <tbody> <tr> <th width="70">ID</th> <th width="200">Nome Produto</th> <th width="200">Imagem</th> <th width="179">Preço</th> <th width="123">Opções</th> </tr> <? mysql_connect("localhost", "root", ""); mysql_select_db("vigacaldeiraria"); $sql = mysql_query("SELECT cod, nome, img, preço FROM tbl_produtos ORDER BY cod ASC"); while($coluna = mysql_fetch_array($sql)){ $id = $coluna["cod"]; ?> <tr> <td><?=$coluna['cod'];?></td> <td><span id="campo<?=$id?>"><?= $coluna["nome"]; ?></span></td> <td><span id="campo_d<?=$id?>"><?= $coluna["img"]; ?></span></td> <td><span id="campo_e<?=$id?>"><?= $coluna["preço"]; ?></span></td> <td><span id="enviar<?=$id?>"><a href="java script:editar('<?=$id;?>')">alterar</a></span><br /><a href="java script:;" onClick="apagar('<?=$id ?>', this.parentNode.parentNode.rowIndex);">del</a></td> </tr> <? } ?> </table> <table align="center" cellspacing="0"> <tr> <td width="70"> </td> <td width="200"><input name="nome" type="text" id="nome" style="float: left" /></td> <td width="200"><input name="img" type="text" id="img" style="float: left" /></td> <td width="179"><input name="preço" type="text" id="preço" style="float: left" /></td> <td width="102"> <input name="button" type="button" onclick="add();" value=" Add " style="float: left" /></td> </tr> <tr> <th colspan="5"></th> </tr> </tbody> </table>crucifier.php<?php //conecta ao banco de dados mysql_connect("localhost", "root", ""); mysql_select_db("vigacaldeiraria"); //essa function eu coloquei para retornar o id e inserir na tabela, ela é desnecessaria para o funcionamento...coloquei porq no meu tava xD function autoindex($tambem) { $query = mysql_query('SHOW TABLE STATUS LIKE "' . $tambem . '"'); $data = mysql_fetch_array($query); return $data['Auto_increment']; } switch ($_REQUEST['acao'] == "add") { //se acao = add então adicionar case 'add' : $valor = urldecode($_REQUEST['nome']); $valor2 = urldecode($_REQUEST['img']); $valor3 = urldecode($_REQUEST['preço']); echo autoindex("tbl_produtos"); mysql_query("INSERT INTO tbl_produtos VALUES('','$valor','$valor2','$valor3')"); break; //se acao = del então deletar case 'del' : $id = $_REQUEST['cod']; mysql_query("DELETE FROM tbl_produtos WHERE cod = '$id'"); break; //se acao = edit então editar case 'edit' : $id = $_REQUEST["cod"]; $valor = urldecode($_REQUEST["nome"]); $valor2 = urldecode($_REQUEST["img"]); $valor3 = urldecode($_REQUEST["preço"]); mysql_query("UPDATE tbl_produtos SET nome = '$valor', img = '$valor2', preço = '$valor3' WHERE cod = '$id'"); break; } ?>crucifier.jsfunction ajax(){ }; ajax.prototype.iniciar = function(){ 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; } ajax.prototype.ocupado = function() { estadoAtual = this.xmlhttp.readyState; return (estadoAtual && (estadoAtual < 5)); } ajax.prototype.processa = function() { if (this.xmlhttp.readyState == 5 && this.xmlhttp.status == 200) { return true; } } ajax.prototype.enviar = function(url, metodo, modo) { if (!this.xmlhttp) { this.iniciar(); } if (!this.ocupado()) { if(metodo == "GET") { this.xmlhttp.open("GET", url, modo); this.xmlhttp.send(null); } else { 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); } if (this.processa) { return unescape(this.xmlhttp.responseText.replace(/\+/g," ")); } } return false; } function editar(id) { elem = document.getElementById('campo'+id); //primeiro campo elem2 = document.getElementById('campo_d'+id); //segundo campo elem3 = document.getElementById('campo_e'+id); //terceiro campo bot = document.getElementById("enviar"+id); //botao de enviar elem.innerHTML = "<input type=\"text\" value=\"" + elem.innerHTML + "\" id='"+id+"_c' />"; //inserir o primeiro input elem2.innerHTML = "<input type=\"text\" value=\"" + elem2.innerHTML + "\" id='"+id+"d_c' />"; //inserir o segundo input elem3.innerHTML = "<input type=\"text\" value=\"" + elem3.innerHTML + "\" id='"+id+"e_c' />"; //inserir o terceiro input bot.innerHTML = '<a href="java script:editado(\''+ id +'\')">enviar</a>'; //inserir o botao de enviar a alteracao } function editado(id) { envia = document.getElementById('enviar'+id); //span onde vai aparecer o botaozinho para enviar a alteracao campo = document.getElementById(id+'_c').value; //primeiro campo campod = document.getElementById(id+'d_c').value; //segundo campo campoe = document.getElementById(id+'e_c').value; //terceiro campo ecampo = escape(campo); //para não haver problemas de acentos e tal ecampod = escape(campod); //para não haver problemas de acentos e tal ecampoe = escape(campoe); //para não haver problemas de acentos e tal document.getElementById('campo'+id).innerHTML = campo; //alterar o registro na pagina document.getElementById('campo_d'+id).innerHTML = campod; //alterar o registro na pagina document.getElementById('campo_e'+id).innerHTML = campoe; //alterar o registro na pagina envia.innerHTML = '<a href="java script:editar(\''+id+'\')">alterar</a>'; //depois de enviar, mostrar de novo o botão de editar xmlhttp = new ajax(); xmlhttp.enviar('crucifier.php?acao=edit&cod='+ id + '&nome='+ ecampo + '&img=' + ecampod + '&preço=' + ecampoe, "POST", false); //endereco para enviar a alteração }; function addrow(id) { tambem = document.getElementById('tabela'); //id da tabela campo = document.getElementById('nome'); //primeiro campo campod = document.getElementById('img'); //segundo campo campoe = document.getElementById('preço'); //terceiro campo var x=tambem.insertRow(-1); //inserir a linha var y=x.insertCell(0); //inserir coluna 1 var z=x.insertCell(1); //inserir coluna 2 var w=x.insertCell(2); //inserir coluna 3 var k=x.insertCell(3); //inserir coluna 4 var b=x.insertCell(4); //inserir coluna 5 y.innerHTML=id; //na primeira coluna, inserir o id z.innerHTML="<span cod=\"campo"+id+"\">"+campo.value+"</span>"; //na segunda coluna, inserir o nome w.innerHTML="<span cod=\"campo_d"+id+"\">"+campod.value+"</span>"; //na terceira coluna, inserir o imagem k.innerHTML="<span cod=\"campo_e"+id+"\">"+campoe.value+"</span>"; //na quarta coluna, inserir o preço b.innerHTML='<span cod="enviar'+id+'"><a href="java script:editar(\''+id+'\')">alterar</a></span><br><a href="java script:;" onClick="deleterow(\''+id+'\', this.parentNode.parentNode.rowIndex);">del</a>'; //na quarta coluna, inserir as opções } function add() { campo = document.getElementById('nome').value; //recupera primeiro campo ecampo = escape(campo); //"escapa" primeiro campo campod = document.getElementById('img').value; //recupera segundo campo ecampod = escape(campod);//"escapa" segundo campo campoe = document.getElementById('preço').value; //recupera terceiro campo ecampoe = escape(campoe);//"escapa" terceiro campo xmlhttp = new ajax(); id = xmlhttp.enviar('crucifier.php?acao=add&nome='+ ecampo + '&img=' + ecampod, + '&preço=' + ecampoe,"POST", false); //manda adicionar addrow(id); //adiciona a linha com os campos campo.value = ""; //limpa o campo1 campod.value = ""; //limpa o campo2 campoe.value = ""; //limpa o campo3 } function apagar(id, rowIndex) { if (confirm('Tem certeza que deseja excluir este registro?')) { document.getElementById("tabela").deleteRow(rowIndex); //id da tabela + excluir linha xmlhttp = new ajax(); xmlhttp.enviar('crucifier.php?acao=del&id='+ id, "POST", false); //envia o comando para deletar } }Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados