Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Peguei um codigo pronto em Laboratório de scripts (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
CREATE TABLE tbl_produtos (cod INT(11) NOT NULL AUTO_INCREMENT,nome VARCHAR(150) NULL,img VARCHAR(36) NULL,preço DOUBLE(10,2) NULL,PRIMARY KEY(cod));
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">Administração](http://www.w3.org/1999/xhtml) - 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, preco 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["preco"]; ?></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="preco" type="text" id="preco" 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 dadosmysql_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 xDfunction 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 adicionarcase 'add' : $valor = urldecode($_REQUEST['nome']); $valor2 = urldecode($_REQUEST['img']); $valor3 = urldecode($_REQUEST['preco']); echo autoindex("tbl_produtos"); mysql_query("INSERT INTO tbl_produtos VALUES('','$valor','$valor2','$valor3')"); break;//se acao = del então deletarcase 'del' : $id = $_REQUEST['cod']; mysql_query("DELETE FROM tbl_produtos WHERE cod = '$id'"); break;//se acao = edit então editarcase 'edit' : $id = $_REQUEST["cod"]; $valor = urldecode($_REQUEST["nome"]); $valor2 = urldecode($_REQUEST["img"]); $valor3 = urldecode($_REQUEST["preco"]); mysql_query("UPDATE tbl_produtos SET nome = '$valor', img = '$valor2', preco = '$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 + '&preco=' + 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('preco'); //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('preco').value; //recupera terceiro campo ecampoe = escape(campoe);//"escapa" terceiro campo xmlhttp = new ajax(); id = xmlhttp.enviar('crucifier.php?acao=add&nome='+ ecampo + '&img=' + ecampod, + '&preco=' + 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 }}Carregando comentários...