Teo Carlo 0 Denunciar post Postado Agosto 29, 2017 <?php if(isset($_POST["excluir_empresa"]) ){ $id_empresa = $_POST["idemp"]; ?> $.SmartMessageBox({ title : "Atenção!", content : "Você está prestes a <strong>EXCLUIR</strong> definitivamente esse registro. Você tem certeza que deseja continuar ?", buttons : '[No][Yes]' }, function(ButtonPressed) { if (ButtonPressed === "Yes") { $sqldelete = $mysqli->prepare("DELETE FROM tbl_empresa where id_empresa = '$id_empresa' limit 1"); $sqldelete->execute(); $sqldelete->close(); $.smallBox({ title: "Parabéns! Operação Efetuada com Sucesso", content: "<i class='fa fa-clock-o'></i> <i>1 segundo atrás...</i>", color: "#5F895F", iconSmall: "fa fa-check bounce animated", timeout: 4000 }); } if (ButtonPressed === "No") { $.smallBox({ title: "ATENÇÃO! Operação Cancelada pelo Usuário", content: "<i class='fa fa-clock-o'></i>", color: "#fc9999", iconSmall: "fa fa-check bounce animated", timeout: 6000 }); } Apertando o botão Yes ou No, a instrução mysqli dentro do if do ButtonPressed === "Yes" é executada,. Não importa o botao que eu aperte. Por outro lado, se eu tirar a instrução sql, as mensagens são apresentadas corretas, nunca as duas. Gostaria que só fosse executada a instrução sql, apenas quando eu apertar Yes. Alguém pode me ajudar ? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Agosto 29, 2017 PHP roda no server, JavaScript roda no client (browser). Todo o código PHP é executado antes mesmo de aparecer a janela de confirmação de exclusão. A melhor maneira de se criar uma janela de confirmação de exclusão é a seguinte: Compartilhar este post Link para o post Compartilhar em outros sites
Teo Carlo 0 Denunciar post Postado Agosto 29, 2017 Como eu faria para que quando acionado o botao Yes um form seja submetido via POST, fazendo com q a pagina de um reload, seguindo essa logica: <?php if(isset($_POST["excluir_empresa"]) ){ $id_empresa = $_POST["idemp"]; ?> $.SmartMessageBox({ title : "Atenção!", content : "Você está prestes a <strong>EXCLUIR</strong> definitivamente esse registro. Você tem certeza que deseja continuar ?", buttons : '[No][Yes]' }, function(ButtonPressed) { if (ButtonPressed === "Yes") { Submeto um formulario via method POST enviando a variável $id_empresa como hidden e fazendo com q a pagina de uma reload } if (ButtonPressed === "No") { $.smallBox({ title: "ATENÇÃO! Operação Cancelada pelo Usuário", content: "<i class='fa fa-clock-o'></i>", color: "#fc9999", iconSmall: "fa fa-check bounce animated", timeout: 6000 }); } Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Agosto 29, 2017 Pode ser aplicada a mesma lógica que há no link mencionado anteriormente. Basta que, ao clicar em Yes, o javascript submeta o formulário. Compartilhar este post Link para o post Compartilhar em outros sites
Teo Carlo 0 Denunciar post Postado Agosto 29, 2017 3 horas atrás, Gabriel Heming disse: Pode ser aplicada a mesma lógica que há no link mencionado anteriormente. Basta que, ao clicar em Yes, o javascript submeta o formulário. Não manjo nada de JavaScript,mesmo assim obrigado. No caso eu teria que colocar um form.submit() dentro do yes, e não consegui fazer.Se mais alguém puder me ajudar agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Agosto 30, 2017 document.getElementById("id-do-form").submit(); Compartilhar este post Link para o post Compartilhar em outros sites
Teo Carlo 0 Denunciar post Postado Agosto 30, 2017 Muito obrigado pela resposta, ficou assim: Em um datatable eu exibo o botão de excluir em cada linha ( <a href="#" id="smart-mod-eg1" class="btn btn-danger btn-xs"> EXCLUIR</a> ) <td> <?php if($status == 'I'){ echo' <a href="#" id="smart-mod-eg1" class="btn btn-danger btn-xs"> EXCLUIR</a> <form method="post" id="conf_excluir" name="conf_excluir" class="smart-form" action=""> <input type="hidden" id="excluir_empresa" name="excluir_empresa" value="'.$id_empresa.'"> </form> '; } ?> </td> Verifico se foi clicado aqui: $("#smart-mod-eg1").click(function(e) { $.SmartMessageBox({ title : "Solicitação de Confirmação!", content : "Você está preste a excluir uma EMPRESA definitivamente do nosso Banco de Dados. Você tem <strong>certeza</strong> desta operação?", buttons : '[Não][Sim]' }, function(ButtonPressed) { if (ButtonPressed === "Sim") { document.getElementById("conf_excluir").submit(); } if (ButtonPressed === "Não") { $.smallBox({ title : "ATENÇÃO", content : "<i class='fa fa-clock-o'></i> <i>Operação Cancelada pelo Usuário</i>", color : "#C46A69", iconSmall : "fa fa-times fa-2x fadeInRight animated", timeout : 4000 }); } }); e.preventDefault(); }) Se por acaso apertou o Sim submeto o formulário <form method="post" id="conf_excluir" name="conf_excluir" class="smart-form" action=""> <input type="hidden" id="excluir_empresa" name="excluir_empresa" value="'.$id_empresa.'"> </form> if (ButtonPressed === "Sim") { document.getElementById("conf_excluir").submit(); } Verifico se houve POST e faço a exclusão: if($_SERVER['REQUEST_METHOD'] == 'POST') { if(isset($_POST["excluir_empresa"])){ $id_empresa = $_POST["excluir_empresa"]; CODIGO DE EXCLUIR } } Funcionou perfeitamente, nao sei se é o ideal, mas está funcionando. O unico problema agora é que, quando eu listo meus dados no datatable, no grid, o botao EXCLUIR funciona apenas na linha que mostra o primeiro registro encontrado no while que construiu a tabela, o restante fica inoperante. $result = $mysqli->query($query); $achei = mysqli_num_rows($result); if($achei > 0){ while ($obj = $result->fetch_object()){ } } Inspecionando o codigo, eu verifiquei que a tag <a hreaf > responsável por chamar a função não se repete dentro de todos os botoes gerados, apenas no primeiro. Se puder me ajudar a resolver., agradeço Compartilhar este post Link para o post Compartilhar em outros sites
Osmar L Lima 51 Denunciar post Postado Agosto 31, 2017 Verifica no código se os botões estão com o mesmo id na hora de executar o laço. Compartilhar este post Link para o post Compartilhar em outros sites