Jump to content
Fórum Script Brasil
  • 0

Erro No Administração


Nill

Question

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;

}

?>

Edited by Nill
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...