Ir para conteúdo
Fórum Script Brasil
  • 0

Erro No Administração


Nill

Pergunta

Peguei um codigo pronto aqui no forum de Administração e fiz algumas alterações pra atender o que estou necessitando. Porém não esta fufando... Na opção de cadastro não esta cadastrado todos os campos, e a outras opções, excluir e alterar não esta funcionando. O que fiz de errado ai.. não estou consguindo encontra o erro.. Se alguém puder me ajudar.

para verem o erro.. http://www.vigacaldeiraria.com.br/pim/adm/

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">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

&lt;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 align="center">Administração de registros via Ajax - PIM UNILESTE </h1>

<table align="center" cellspacing="0" class="tbls-consulta" id="tabela" width="736">

<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_<?=$id?>"><?= $coluna["img"]; ?></span></td>

<td><span id=campo_<?=$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="78"><input name="button" type="button" onclick="add();" value=" Add " style="float: left"/></td>

</tr>

<tr>

<th colspan="5"></th>

</tr>

</tbody>

</table>

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'+cod); //primeiro campo

elem2 = document.getElementById('campo_'+cod); //segundo campo

elem3 = document.getElementById('campo_'+cod); //terceiro campo

bot = document.getElementById("enviar"+cod); //botao de enviar

elem.innerHTML = "<input type=\"text\" value=\"" + elem.innerHTML + "\" id='"+cod+"_c' />"; //inserir o primeiro input

elem2.innerHTML = "<input type=\"text\" value=\"" + elem2.innerHTML + "\" id='"+cod+"d_c' />"; //inserir o segundo input

elem3.innerHTML = "<input type=\"text\" value=\"" + elem3.innerHTML + "\" id='"+cod+"e_c' />"; //inserir o terceiro input

bot.innerHTML = '<a href="java script:editado(\''+ cod +'\')">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_'+id).innerHTML = campod; //alterar o registro na pagina

document.getElementById('campo_'+id).innerHTML = campoe; //alterar o registro na pagina

envia.innerHTML = '<a href="java script:editar(\''+cod+'\')">alterar</a>'; //depois de enviar, mostrar de novo o botão de editar

xmlhttp = new ajax();

xmlhttp.enviar('crucifier.php?acao=edit&id='+ id + '&nome='+ ecampo + '&img=' + ecampod + '&preço=' + ecampoe, "POST", false); //endereco para enviar a alteração

}

function addrow(id) {

também = 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=também.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 d=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 id=\"campo"+cod+"\">"+campo.value+"</span>"; //na segunda coluna, inserir o nome

w.innerHTML="<span id=\"campo_"+cod+"\">"+campod.value+"</span>"; //na terceira coluna, inserir o img

d.innerHTML="<span id=\"campo_"+cod+"\">"+campoe.value+"</span>"; //na quarta coluna, inserir o preço

b.innerHTML='<span id="enviar'+cod+'"><a href="java script:editar(\''+cod+'\')">alterar</a></span><br><a href="java script:;" onClick="deleterow(\''+cod+'\', 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, "POST", false); //manda adicionar

addrow(id); //adiciona a linha com os campos

campo.value = ""; //limpa o campo 1

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

}

}

crucifier.php
<?php

//conecta ao banco de dados

mysql_connect("localhost", "vigacaldeiraria", "vigsql0");

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;

}

?>

Editado por Nill
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Caro, andreia_sp;

Valeu pela dica, realmente apos retirar o espaço, diminuiu a quantidade de erro.

Porém agora ta acontecendo o seguinte..

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.

Candastrar -> Aparece uma mensagem: "Erro de tempo de execução - linha 50"

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.

Eu peguei o codigo pronto neste endereço: http://scriptbrasil.com.br/forum/index.php?showtopic=79113

O endereço onde esta o script, caso queiram ver o erro: http://www.vigacaldeiraria.com.br/pim/adm/

Como nunca trabalhei com Ajax, to apanhando mas to conseguindo mundar o codigo pra me matender...

ai vai os codigos com as alterações que fiz.

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" />
&lt;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 - PIM UnilesteMG </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.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
    }
}
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;
}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Olha o jeito é debugar... tipo, coloque um alert ou response.write "passou" response.end no começo da pagina crucifier.php pra saber se chega lá..

Se chegar é porque o problema é no retorno dos dados e não do ajax, se não passar então o erro está entre o evento que chama o ajax até o momento em que ele chama a pagina crucifier.

Eu não tenho como testar PHP, eu trabalho com Asp... mas tenta debugar pra determinar aonde está o problema ;)

Link para o comentário
Compartilhar em outros sites

  • 0
<?php

//testando bug

response.write "passou" response.end;

//conecta ao banco de dados

Olha se é assim mesmo. desculpa a ignorância e que estou iniciando agora..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...