Académique Documents
Professionnel Documents
Culture Documents
iMasters Fruns: [Resolvido] Problema para excluir registro com janela modal - iMasters Fruns
Abril.com Notcias Entretenimento Homem INFO Downloads Reviews Busca Celular Assine Loja Grupo Abril
Ir para o contedo
Movimente suas ideias Pesquisar Pesquisar Entrar Novo usurio? Cadastre-se agora! Fruns Membros Calendrio Galeria Blogs Este tpico Avanado
Regras
Ver Novo Contedo iMasters Fruns > Programao > PHP Pgina 1 de 1 Novo tpico Responder
Grupo: Membros Posts: 237 Cadastrado: 05-novembro 09 Postou 06 abril 2010 - 13:55 Bom galera meu problema o seguinte, tenho uma pgina de consulta onde ela tem algumas operaes Alterar/Excluir/+Detalhes, onde, quando clico em Excluir uma janela modal ativada para que eu escolha entre Confirmar a Operao ou Cancelar. No entanto, tenho alguns problemas quanto ao ID que ela pega quando clico em Excluir, vez ou outra ele pega o ID corretamente de quem desejo excluir, mais maioria das vezes no pega o ID correto de quem desejo excluir.
imasters.com.br//389999-problema-
1/9
09/03/2011
http://localhost/excluir/?clienteid=2
Por exemplo, pelo firebug tenho o seguinte retorno quando clico em "Thiago Reis" onde seu "ID=2"
Ento vocs poderiam me dizer, mais ele est pegando o ID corretamente. Eu diria que voc est certo, mais o problema que ele pega esse ID corretamente apenas pela URL, no input onde digo que para ele tambm pegar esse ID "2", as vezes aparece "1" "3" "4" e as vezes o proprio "2". Ento eu gostaria de quando eu clicasse no "Thiago Reis" onde seu "ID=2" que no input que para mim confirmar a excluso aparecesse "2" tambm todas as vezes que eu clicasse. Nesse link aqui -->> http://www.mediafire.com/?emkl2nvedmu <<-- est o script que estou tentando fazer. Para vocs entenderem melhor o que quero fazer, basta baix-lo (se no for querer abusar da boa vontade de vocs, claro) e d um click em algum, podem observar que na URL do firebug ele passa o ID certinho. Mais quando a DIV se abre, ento peam para exibir o cdigo fonte e observem nas seguintes linhas abaixo como o "ID" do primeiro no o mesmo da URL e nem o "rel" do segundo.
<input type="submit" name="excluir" id="<?php echo $clienteid?>" value="Confirmar" class="submit" /> <div id="campo-pesquisa-operacoes" style="background:<?php echo $bgcolor; ?>;"><a rel="<?php echo $clienteid ?>" name="modal" id="#dialog2" h
Algum poderia me dizer aonde que estou errando ?! Desde de j obrigado pela ajuda de todos. Ir para o topo of the page up there ^
#2
JRRC
Grupo: Membros Posts: 237 Cadastrado: 05-novembro 09 Postou 06 abril 2010 - 20:14 Bom galera houve um grande mau entendido os ID so passados corretamente, eu que no tinha prestado ateno. Bom o meu problema agora, como fazer para o registro excluir assim que eu pressionar "Confirmar" Meu input est da seguinte forma abaixo:
<form id="exclui-cliente" name="exclui-cliente" method="get" action=""> <input type="button" name="close" value="Fechar" class="close"/> <input type="submit" name="excluir" rel="<?php echo $clienteid?>" value="Confirmar" class="submit" /> </form>
Tentei fazer da seguinte forma para excluir o registro quando eu clicasse em "Confirmar" no entanto no deu certo.
//Peguei o valeu do input $('#Confirmar').submit(function(e) { e.preventDefault(); var clienteid = $(this).attr("rel"); $.ajax({ type:"GET", url:"excluir-cliente-bd.php", data:{clienteid:clienteid}, success: function(atual){ $(this).html(atual) } }) })
imasters.com.br//389999-problema-
2/9
09/03/2011
} ?>
Algum sabe me dizer aonde que estou errando ?! Desde de j obrigado pela ajuda de todos. Ir para o topo of the page up there ^
#3
William Bruno
Desenvolvedor FrontEnd
Grupo: Moderadores Posts: 12560 Cadastrado: 08-janeiro 08 Sexo:Masculino Localizao:So Paulo - SP Postou 06 abril 2010 - 23:06 Faz o seguinte:
success: function(atual){ $('#retorno').html(atual) }
e no form:
<input type="submit" name="excluir" rel="<?php echo $clienteid?>" value="Confirmar" class="submit" /> <div id="retorno"></div> </form>
excluir-cliente-bd.php
<?php if( !empty($_GET["clienteid"]) ) { $clienteid = $_GET["clienteid"]; $sql = "DELETE FROM cliente WHERE id = '$clienteid'"; $query = mysql_query($sql)or die( mysql_error() ); echo ( $query ) ? 'Excluido com sucesso' : 'Ocorreu um erro'; } ?>
#4
JRRC
Grupo: Membros Posts: 237 Cadastrado: 05-novembro 09 Postou 07 abril 2010 - 07:21 Bom dia William Bruno, Fiz da forma que voc disse, e est dando o seguinte ERRO abaixo
Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/excluir/
Dei uma verificada no arquivo de excluso e no vi nada de ERRADO, apesar de ter algo, deixei ele da seguinte forma abaixo:
imasters.com.br//389999-problema-
3/9
09/03/2011
<?php if( !empty($_GET["clienteid"]) ) { $sql = "DELETE FROM cliente WHERE id = '$clienteid'"; $query = mysql_query($sql) or die( mysql_error() ); if( $query ) { echo 'Excluido com sucesso'; } } ?>
O erro est dando nessa linha aqui $query = mysql_query($sql) or die( mysql_error() ); Uma outra coisa estranha que est aparecendo por exemplo, quando eu clico em um cliente par excluir no firebug me aparece o seu verdadeiro ID e quando clico em confirmar me aparece apenas o primeiro ID, independente de quem eu clique. Por exemplo quando clico em excluir me aparecesse o seguinte no firebug
http://localhost/excluir/?clienteid=2
Como voc pode ver, o primeiro ID que passado na URL e no o seu ID que no exemplo seria "2". Meu cdigo em Jquery dei uma modificada, ele est da seguinte forma abaixo agora
$('#Confirmar').click(function(e) { e.preventDefault(); $('form[name=exclui-cliente]').submit(function(e){ e.preventDefault(); var clienteid = $('a[name=modal]').attr("rel"); $.ajax({ type:"GET", url:"excluir-cliente-bd.php", data:{clienteid:clienteid}, success: function(atual){ $('#retorno').html(atual) } }) return false; }); });
Nessa parte aqui do codigo var clienteid = $('a[name=modal]').attr("rel"); tento passar o ID do <a ...></a>, mais infelizmente no deu certo. E meu formulrio est assim:
<form id="exclui-cliente" name="exclui-cliente" method="get" action=""> <input type="button" name="close" value="Fechar" class="close"/> <input type="submit" name="Confirmar" id="Confirmar" rel="" value="Confirmar" class="submit" /> <div id="retorno"></div> </form>
Nesse link aqui -->> http://www.mediafire.com/?m2y1uhcji5z <<-- esto os arquivos para download, caso d para voc baixar e conferir ficaria muito grato. T mais e tenha uma boa quarta. Obs: Antes mesmo dessa alterao no cdigo Jquery o erro de passar o ID quando eu clicava em confirmar j existia. Ir para o topo of the page up there ^
#5
William Bruno
Desenvolvedor FrontEnd
Grupo: Moderadores Posts: 12560 Cadastrado: 08-janeiro 08 Sexo:Masculino Localizao:So Paulo - SP Postou 07 abril 2010 - 07:32
imasters.com.br//389999-problema-
4/9
09/03/2011
Bom Dia @JRRC ! cara, vamos ser 'pragmticos'. Uma coisa de cada vez.. arrume a conexo com o banco de dados. o or die() fez aparecer o erro, do banco de dados. Voc no est conectando corretamente ao banco !!! arrume isso !
JRRC, em 07 abril 2010 - 07:21 , disse: Bom dia William Bruno, Fiz da forma que voc disse, e est dando o seguinte ERRO abaixo
Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/excluir/
Qnto ao outro erro, voc tem vrios formulrios nessa pgina? No duplique IDs !!! isso um erro absurdo de HTML ! id deve ser um identificador nico no documento. E cara, desculpe.. mas no vou baixar os teus arquivos e arrum-los no. Isso vai um pouco alm do 'ajudar'. Se precisar de suporte particular, sugiro contratar um profissional: Ofertas para Freelancers Ir para o topo of the page up there ^
#6
JRRC
Grupo: Membros Posts: 237 Cadastrado: 05-novembro 09 Postou 08 abril 2010 - 19:11 Boa noite William Bruno, Bom para comear o problema no estava no arquivo de conexo e sim no prprio arquivo de excluso pois no estava chamando o arquivo de conexo dentro do mesmo. E tambm no HAVIA e no H nenhum ID duplicado em meu cdigo, alm de algumas DIV que so necessria a sua repetio. Vamos ao que interessa, quanto ao erro que dava foi resolvido deixando meu arquivo de excluir da seguinte maneira abaixo.
<?php require_once "./conexao.php"; $clienteid = $_POST["clienteid"]; $sql = "DELETE FROM cliente WHERE id = '$clienteid'"; $query = mysql_query($sql) or die( mysql_error() ); if( $query ) { echo ?> 'Excluido com sucesso'; }
E tambm ja estou excluindo perfeitamente quando clico em "Confirmar" na janela modal. O meu nico problema que eu gostaria que quando eu clicasse em "Confirmar" a janela modal, desaparecesse igual quando clico em "Cancelar". Meu cdigo atualmente est da seguinte maneira abaixo:
var clienteid_global = 0; $(document).ready(function() { $('a[name=modal]').click(function(e) { e.preventDefault(); var id = $(this).attr('id'); clienteid_global = $(this).attr("rel"); var maskHeight = $(document).height(); var maskWidth = $(window).width(); $('#mask').css({'width':maskWidth,'height':maskHeight}); $('#mask').fadeIn(1000); $('#mask').fadeTo("slow",0.8); //Get the window height and width
imasters.com.br//389999-problema-
5/9
09/03/2011
}); $('.window .close').click(function (e) { e.preventDefault(); $('#mask').hide(); $('.window').hide(); }); $('#mask').click(function () { $(this).hide(); $('.window').hide(); }); $('#btn_confirma').click(function() { $('form#exclui-cliente').submit(function(){ var cliente_id = clienteid_global; $.ajax({ type:"POST", url:"excluir-cliente-bd.php", data:{clienteid:cliente_id}, success: function(atual){ $('#retorno').html(atual) } }) return false; }); }); });
Desde de j obrigado pela ajuda de todos, t mais. Ir para o topo of the page up there ^
#7
JRRC
Grupo: Membros Posts: 237 Cadastrado: 05-novembro 09 Postou 08 abril 2010 - 19:41 Um pequeno detalhes que esqueci de citar , se eu deixar "return true;" a janela modal desaparece e d um refresh na pgina, que no a forma que eu deseje que fique. Outro detalhes que esqueci de dizer, que da forma que se encontra meu cdigo, quando clico em "Confirmar" (que para excluir), a janela modal continua e atravs de sua transparncia d pra ver pra tambm o nome da pessoa ainda que mandei excluir, ou seja, s desaparece quando mando atualizar (F5). Resumindo, eu gostaria que quando clicasse em "Confirmar" a janela modal desaparecesse juntamente com a pessoa que mandei "Excluir" sem d um refresh n pagina. Algum sabe me dizer o que devo fazer para resolver esse meu problema ?! Desde de j obrigado pela ajuda de todos, t mais.
imasters.com.br//389999-problema-
6/9
09/03/2011
Ir para o topo of the page up there ^
#8
JRRC
Grupo: Membros Posts: 237 Cadastrado: 05-novembro 09 Postou 09 abril 2010 - 17:27 Bom pessoal problema resolvido, vou postar abaixo os codigos para que caso algum no futuro deseje fazer o mesmo, tenha algo a mais em que se basear. Consulta + Form + Janela Modal + DIV que visualizo os cliente cadastrados
$sql = "SELECT * FROM cliente"; for ($linha=0; $linha < mysql_num_rows($dados); $linha++) { $clienteid = mysql_result($dados, $linha, id); $nome = mysql_result($dados, $linha, nome); if (isset($bgcolor) && $bgcolor == "#F0F0F0") { $bgcolor = "#F9F9F9";} else { $bgcolor = "#F0F0F0"; } ?> <div id="boxes"> <!-- Janela Modal com Bloco de Nota --> <div id="dialog2" class="window"> Excluir Registro.<br /><br /> <b>Voce</b>, deseja excluir este cliente ?<br /> <?php //echo $clienteid; ?> <br /><br /><br /> <?php //require_once "excluir-cliente-bd.php";?> <form id="exclui-cliente" name="exclui-cliente" method="post" action=""> <input type="button" name="close" value="Cancelar" class="close"/> <input type="submit" name="Excluir" id="btn_confirma" rel="<?php echo $clienteid?>" value="Confirmar" </form> </div> <!-- Fim Janela Modal com Bloco de Nota --> <!-- Mscara para cobrir a tela --> <div id="mask"></div> </div> <div id="campo-pesquisa-no-border" class="load-<?php echo $clienteid; ?>"> <div id="campo-pesquisa-dados" style="background:<?php echo $bgcolor; ?>;"><?php echo $nome; ?></div> <div id="campo-pesquisa-dados" style="background:<?php echo $bgcolor; ?>;"><?php echo mysql_result ($dados, $linha, endereco <div id="campo-pesquisa-dados" style="background:<?php echo $bgcolor; ?>;"><?php echo mysql_result ($dados, $linha, cpf <div id="campo-pesquisa-sexo" style="background:<?php echo $bgcolor; ?>;"><?php echo mysql_result ($dados, $linha, sexo <div id="campo-pesquisa-operacoes" style="background:<?php echo $bgcolor; ?>;"><a href ="<?php echo "index.php?link=7& </div> <div id="campo-pesquisa-operacoes" style="background:<?php echo $bgcolor; ?>;"><a rel="<?php echo $clienteid ?>" name= </div> <div id="campo-pesquisa-operacoes" style="background:<?php echo $bgcolor; ?>;"><a href ="<?php echo "index.php?link=9& </div> </div> <?php }?>
imasters.com.br//389999-problema-
7/9
09/03/2011
$(id).fadeIn(2000); });
//se o boto fechar for clicado $('.window .close').click(function (e) { //cancela o comportamento padro do link e.preventDefault(); $('#mask').hide(); $('.window').hide(); }); //se div#mask for clicado $('#mask').click(function () { $(this).hide(); $('.window').hide(); }); //se o boto 'Confirmar' for clicado ento d o submit no form $('#btn_confirma').click(function() { $('form#exclui-cliente').submit(function(){ var cliente_id = clienteid_global; $.ajax({ type:"POST", url:"excluir-cliente-bd.php", data:{clienteid:cliente_id}, success: function(atual){ $('#retorno').html(atual); $('.load-'+cliente_id).remove(); $('#mask').hide(); }) return false; }); }); });
|-- PHP
imasters.com.br//389999-problema-
8/9
09/03/2011
2001 iMasters FFPA Informtica Ltda Todos os direitos reservados. Community Forum Software by IP.Board Licenciado para:iMasters FFPA Informtica Ltda
Skin e idioma
Tema Novo iMasters Idioma: Portugus (Brasil)
imasters.com.br//389999-problema-
9/9