Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LaerteDias

Incluir janela confirmar antes de apagar registro

Recommended Posts

Tenho uma lista que permite as ações editar e apagar, quando quero deletar um registro, gostaria que antes aparecesse um janela, caso o usuário clicasse em confirma, iria apagar o registro?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<a onclick="return confirm(\'Confirma Exclusão do Registro?\')">Delete</a>

valeu, isso eu sei gostaria de saber como após a confirmação pegar o id e enviar para função de exclusão de registro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala laerte.

Se eu entendi certo, talvez isso ajude!

Você pode criar uma propriedade na tag <a>, por exemplo: data-id="codigo"(<a data-id="1"...>). Se você faz um foreach, passa o código do registro dentro desse data-id, ai na modal você coloca um campo hidden "codigo" e atribui o valor do data-id via jquery:

var registroExcluido = $(this).data('id');

Veja ai e nos fale! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apesar de javascript ser uma abordagem muito comum, conforme listado acima, não é a abordagem correta segundo as definições da W3C.

O correto seria utilizar o método DELETE. Entretanto, não é possível utilizar o método DELETE em um browser. Apenas GET ou POST.

Com um link, apenas é possível utilizar o método GET. GET tem como objetivo exclusivo retornar informações de um storage. Por outro lado, POST, tem como objetivo exclusivo modificar informações em um banco de dados. Deletar é uma alteração do banco de dados.

Para utilizar o método POST, é necessário utilizar um formulário. Além do mais, você quer validar a exclusão. Para tal, é possível utilizar um pequeno "truque".

Chamarei essa página de list.php, aonde tem a lista de todos os registros

<a href="delete.php?id=1" title="Excluir o registro" >excluir</a>

delete.php:

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($_POST['delete'] == 'yes') {
       try {
            $statement = $pdo->prepare('DELETE FROM table WHERE id = :id');
            $statement->bindValue(':id' , $_POST['id'] , PDO::PARAM_INT);
            $statement->execute();
       } catch (PDOException $exception) {
            /** ações a serem realizadas caso não excluiu o registro **/
       }
    }

    header("Location: list.php");
    exit();
} ?>

<p>Tem certeza que deseja deletar o registro <?= $_GET['id'] ?>?</p>

<form action="delete.php" method="post">
    <input type="hidden" name="id" value="<?= $_GET['id'] ?>" />

    <button name="delete" value="yes">Sim</button>
    <button name="delete" value="no">Não</button> 
</form>

No exemplo acima, basicamente será feita uma requisição GET para a página de exclusão. Será verificado que é uma requisição GET e exibirá o formulário para exclusão. Caso opte por excluir ou não, será feita uma requisição POST, validando a escolha. Caso decida por excluir, será excluído o registro e redirecionado para a lista completa. Caso escolha por não excluir, será apenas redirecionado para a lista.

Esse é apenas um exemplo básico estrutural, pode ser modificado conforme a necessidade e ser acoplado em um framework. Como pode ser visto na documentação do Zend Framework.

Para javascript ser correto, teria que utilizar Ajax. Mas, dessa forma, teria que pensar em Unobtrusive JavaScript

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz uma vez desta maneira:

<?php 
include"../includes/conecta.php";
$id = $_GET["id"];
$sql = mysql_query("select * from  produtos where id='$id'", $conexao);
 
$vetor = mysql_fetch_array($sql);
?>
      </span>      <span class="style13"></span>      </span>      <form action="excluirproduto.php?id=<?php echo $vetor[0] ?>" method="post" name="confirmacao" class="style17 style13">
 <span class="style19"><strong>Deseja excluir o cadastro <?php echo $vetor[1] ?>?</strong> 
      <input name="exclusao" type="radio" value="1" checked="checked" /> 
    Sim 
    <input name="exclusao" type="radio" value="2" />
    Não </span>
 <p>
    <input name="pesq" type="image" src="../imgs/confirmar.png" class="float" />
     </p>
</form>

depois eu mandava excluir:

<?php
   include '../includes/conecta.php';
   $id = $_GET["id"];
   $exclusao = $_POST['exclusao'];
   
   if($exclusao == 1) {
   $sql_exclui = mysql_query("delete FROM produtos WHERE id = '$id'", $conexao);
     echo "<script> alert('Excluido com sucesso!')</script>";
echo "<script> window.location.href='pagina.php?i=listarprodutos.php'</script>";
   }else{
    echo "<script> window.location.href='pagina.php?i=listarprodutos.php'</script>";
   }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como ele irá usar modal, acredito que do bootstrap, a ideia de passar via data-id também funcionaria e de maneira parecida, pq dentro do modal ele teria que colocar um form e após clicar em Sim, faria um POST da mesma maneira!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida, referente cálculo de valores em tempo real.

      Tenho uma rotina, que faz o cálculo, o problema é mostrar o resultado.

      Quero mostrar o RESULTADO assim: 0,00  ou  0.00

      Abaixo posto o código.
      jQuery('input').on('keyup',function(){ //Remover ponto e trocar a virgula por ponto var m = document.getElementById("pgRest").value; while (m.indexOf(".") >= 0) { m = m.replace(".", ""); } m = m.replace(",","."); //Remover ponto e trocar a virgula por ponto var j = document.getElementById("pgDsct").value; while (j.indexOf(".") >= 0) { j = j.replace(".", ""); } j = j.replace(",","."); m = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); j = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real jQuery('#pgTroco').val(m - j); <<=== aqui estou errando })  
       
      Grato,
       
      Cesar
       
       
    • Por violin101
      Caro amigos, saudações.

      Tenho uma tabela escrita em JS que funciona corretamente.
       
      Minha dúvida:
      - como devo fazer para quando a Tabela HTML estiver vazia, exibir o LOGO da Empresa ?

      Abaixo posto o script:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'i' ) return;// Não é Ctrl+A, portanto interrompemos o script evt.preventDefault(); //Chama a Função Calcular Qtde X Valor Venda calcvda(); var idProdutos = document.getElementById("idProdutos").value; var descricao = document.getElementById("descricao").value; var prd_unid = document.getElementById("prd_unid").value; var estoque_atual = document.getElementById("estoque_atual").value; var qtde = document.getElementById("qtde").value; var vlrunit = document.getElementById("vlrunit").value; var vlrtotals = document.getElementById("vlrtotal").value; var vlrtotal = vlrtotals.toLocaleString('pt-br', {minimumFractionDigits: 2}); if(validarConsumo(estoque_atual)){ //Chama a Modal com Alerta. $("#modal_qtdemaior").modal(); } else { if(qtde == "" || vlrunit == "" || vlrtotal == ""){ //Chama a Modal com Alerta. $("#modal_quantidade").modal(); } else { //Monta a Tabela com os Itens html = "<tr style='font-size:13px;'>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='id_prds[]' value='"+idProdutos+"'>"+idProdutos+"</td>"; html += "<td width='47%' height='10'>"+ "<input type='hidden' name='descricao[]' value='"+descricao+"'>"+descricao+ "<input type='hidden' name='esp[]' value='"+prd_unid+"'> - ESP:"+prd_unid+ "<input type='hidden' name='estoq[]' value='"+estoque_atual+"'></td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='qtde[]' value='"+qtde+"'>"+qtde+"</td>"; html += "<td width='12%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrunit[]' value='"+vlrunit+"'>"+vlrunit+"</td>"; html += "<td width='14%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrtotal[]' value='"+vlrtotal+"'>"+vlrtotal+"</td>"; html += "<td width='12%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-uvas btn-remove-produto' style='margin-right:1%; padding:1px 3px; font-size:12px;' title='Remover Item da Lista'>"+ "<span class='fa fa-minus' style='font-size:12px;'></span></button></td>"; html += "</tr>"; $("#tbventas tbody").append(html); //Função para Somar os Itens do Lançamento somar(); $("#idProdutos").val(null); $("#descricao").val(null); $("#prd_unid").val(null); $("#qtde").val(null); $("#vlrunit").val(null); $("#vlrtotal").val(null); $("#idProdutos").focus(); //Se INCLUIR NOVO produto - Limpa a Forma de Pagamento $("#pgSoma").val(null); $("#pgRest").val(null); $("#pgDsct").val(null); $("#pgTroco").val(null); $("#tbpagar tbody").empty(); }//Fim do IF-qtde }//Fim do Validar Consumo });//Fim da Função btn-agregar  
      Grato,

      Cesar
       
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.