Ir para conteúdo

Arquivado

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

omor

Como enviar duas action com um click somente

Recommended Posts

Olá, alguem sabe como enviar duas action somente com um botão enviar? em php?

 

exemplo:

 

tenho uma pagina que envia dados para o banco de dados e outra que envia o email para o cliente,

 

quero que ao clicar no botão, envie as duas ações simultaneamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O envio não é nem feito pelo PHP, na verdade; é pelo HTML. O PHP só entra na história quando o navegador envia a requisição.

E a tag <form> só aceita uma action. O seu script é que deve fazer todas as ações.

Com Javascript até dá para fazer dois envios. Mas não tem muita lógica. O PHP é que deve fazer todo o trabalho necessário, nesse caso

Compartilhar este post


Link para o post
Compartilhar em outros sites

O envio não é nem feito pelo PHP, na verdade; é pelo HTML. O PHP só entra na história quando o navegador envia a requisição.

E a tag <form> só aceita uma action. O seu script é que deve fazer todas as ações.

Com Javascript até dá para fazer dois envios. Mas não tem muita lógica. O PHP é que deve fazer todo o trabalho necessário, nesse caso

como é feito então o envio de finalizar pedido? Os dados que são inseridos no banco de dados fica na mesma pagina que envia o email?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todo código PHP possui uma linearidade, ou seja, é executado em uma ordem.

 

Adicione seu código de envio de e-mail dentro dessa linearidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todo código PHP possui uma linearidade, ou seja, é executado em uma ordem.

 

Adicione seu código de envio de e-mail dentro dessa linearidade.

obrigado Gabriel

Compartilhar este post


Link para o post
Compartilhar em outros sites

O envio não é nem feito pelo PHP, na verdade; é pelo HTML. O PHP só entra na história quando o navegador envia a requisição.

E a tag <form> só aceita uma action. O seu script é que deve fazer todas as ações.

Com Javascript até dá para fazer dois envios. Mas não tem muita lógica. O PHP é que deve fazer todo o trabalho necessário, nesse caso

 

como é feito então o envio de finalizar pedido? Os dados que são inseridos no banco de dados fica na mesma pagina que envia o email?

obrigado

 

O envio não é nem feito pelo PHP, na verdade; é pelo HTML. O PHP só entra na história quando o navegador envia a requisição.

E a tag <form> só aceita uma action. O seu script é que deve fazer todas as ações.

Com Javascript até dá para fazer dois envios. Mas não tem muita lógica. O PHP é que deve fazer todo o trabalho necessário, nesse caso

obrigado Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ment0r
      Boa noite pessoal, tudo bem?
       
      Estou desenvolvendo um sistema simples com exibição de formulário via modal. Uma vez cadastrado o serviço (tabela possui apenas dois campos, id e nome), eles são exibidos numa tabela com um ícone que permite a alteração do nome.

       
      Eu clico no ícone e é chamado um modal que é gerado via ajax (pois são vários registros).
       

       
      Nesse modal é mostrado o serviço e uma vez alterado, o botão Salvar chama uma função que atualiza a tabela servico, concluindo a tarefa. Fiz o mesmo processo pra cadastrar o serviço, com a diferença de que o modal está presente na mesma página, ou seja, não é chamado via ajax.
       
      Eis os códigos:
      <a href="#" onclick="modalUpdate(<?= trim($array['id']) ?>)"> <i class='bx bx-edit'></i> </a> // Trecho onde eu chamo a função modalUpdate. Função btAltServico click:
      $('#btAltServico').click(function() { var inpnome = $('#nome'); var inpid = $('#id'); if (inpnome.val() == '') { swal("Atenção", "Por favor, preencha os campos obrigatórios", "warning"); if (inpnome.val() == '') { inpnome.css("border","2px solid #f94545"); } else { inpnome.css("border",""); } alert(inpnome); alert(inpid); } else { $.ajax({ url: '../inc/ajax/altServico.php', type: 'post', dataType: 'json', // pode ser html data: { nome : inpnome.val(), id : inpid.val() }, success: function(resposta){ if (resposta == 1) { inpnome.val(""); inpnome.css("border",""); swal("Sucesso", "Serviço alterado", "success"); } else { if (resposta == 0) { swal("Erro", "Serviço não alterado. Log de erro gerado.", "error"); } else { swal("Atenção", "Serviço já cadastrado", "warning"); } } } }) } });  
      E modalUpdate.php :
       
      <?php /* * altServico.php * * Script responsável pelo update de serviços na tabela servico * * Função chamada pelo arquivo ajax.js */ //if ($_POST) { require'../conn.php'; require'../../class/class.geral.php'; $geral = new Geral(); $nome = $_POST['nome']; $id = $_POST['nome']; $ativo = 1; // Verifica se o servico já foi cadastrado $sqlVer = "select nome from algo68_db_cliente.servico where nome = '".$nome."' and id <> ".$id.""; $queryVer = mysqli_query($conn, $sqlVer); $resultVer = mysqli_num_rows($queryVer); if ($resultVer > 0) { echo json_encode(2); // servico já cadastrado } else { // Update do servico $sql = "update algo68_db_cliente.servico set nome = '".$nome."', ativo = ".$ativo." where id = ".$id; $query = mysqli_query($conn, $sql); $result = mysqli_affected_rows($conn); if ($result > 0) { echo json_encode(1); // alterou o servico } else { $geral->logErro(date('d/m/Y|H:i:s'), @$_SERVER[REQUEST_URI], 'AlterarServico', mysqli_error($conn)); echo json_encode(0); // não alterou o servico } } //} ?> O problema é que quando clico no botão Salvar, não acontece nada - se eu colocar um alert qualquer na função click, só pra saber se está chegando, também não da nada. E está da mesma forma que o cadastro de serviço, que funciona perfeitamente.

      Bom, é isso pessoal, tentei ser o mais breve e especifico possível. Qualquer ajuda é bem vinda, obrigado a todos, desde já.
    • Por eduardodsilvaq
      Erro retornado no console do navegador: 400 bad request
      Rastreei o erro ate essa parte no arquivo admin-ajax.php mudando o valor de resposta de 0 para 1:
      if ( is_user_logged_in() ) { // If no action is registered, return a Bad Request response. if ( ! has_action( "wp_ajax_{$action}" ) ) { wp_die( '0', 400 ); } Tentei de tudo, mas infelizmente nao entendi oq realmente significa esse login e como ele funciona.
      Vi algumas pessoas tendo problema com o host, no meu caso estou usando hostinger. (Nao creio que isso e relevante mas ta ai.)
       
      Código utilizado:
       
      Javascript
      function formValidation() { event.preventDefault(); var name = document.forms["contactForm"]["name"].value; var email = document.forms["contactForm"]["email"].value; var subject = document.forms["contactForm"]["subject"].value; var message = document.forms["contactForm"]["message"].value; document.getElementById('status').innerHTML = ''; var errorMessage="<span class='error'>All fields are required.</span>"; var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if (name.trim() == "" ||email.trim() == "" || subject.trim() == "" || message.trim() == "") { document.getElementById('status').innerHTML = errorMessage; return false; } if (!regEx.test(email)) { var errorMessage="<span class='error'>Invalid email.</span>"; document.getElementById('status').innerHTML = errorMessage; return false; } processContactSubmit(); return true; } function processContactSubmit() { var request = new XMLHttpRequest(); request.open("POST", "/wp-admin/admin-ajax.php?action=process_contact_form"); request.onreadystatechange = function() { if(this.readyState === 4 && this.status === 200) { document.getElementById("status").innerHTML = this.responseText; } }; var myForm = document.getElementById("contactForm"); var formData = new FormData(contactForm); request.send(formData); } functions.php
      add_action('wp_ajax_nopriv_process_contact_form', 'process_contact_form'); add_action('wp_ajax_process_contact_form', 'process_contact_form'); //Retirar essa parte para error no console, no contrario ira aparecer no navegador o numero 0. function process_contact_form() { $to = "Recipient Email Address"; $subject = $_POST["subject"]; $headers = "Testing"; $message = $_POST["message"]; $attachments = ""; $sent = wp_mail($to, $subject, $message, $headers, $attachments); if (! $sent) { echo "<span class='error'>Problem in sending mail.</span>"; } else { echo "<span class='success'>Hi, thank you for the message.</span>"; } wp_die(); } Html
      <form name="contactForm" id="contactForm" method="post" onsubmit="return formValidation()" action=""> <p class="comment-form-comment"><textarea id="message" name="message" required="" placeholder="" aria-required="true"></textarea></p> <p class="comment-form-author"><label for="author">Nome: </label> <input id="name" name="name" required="" size="30" type="text" value=" " /></p> <p class="comment-form-author about"><label for="author">Assunto: </label> <input id="subject" name="subject" required="" size="40" type="text" value=" " /></p> <p class="comment-form-email"><label for="email">Email: </label> <input id="email" name="email" required="" size="30" type="text" value="" /></p> <p class="form-submit"><input id="submit" class="submit" name="email_contato" type="submit" value="Enviar" /></p> </form>&nbsp; <h3><div id="status"></div></h3>  
    • Por merlinus
      tenho a seguinte situação, uma  pagina iniciar e gostaria de usar o recaptcha.
      mas tem duas formas que gostaria q ele validasse, uma indo pra pagina pra pagina de logar, a outra indo pro script esqueci a senha que enviaria o email para o usuario.
       
      inicialmente pensei em mudar o action com javascript para o outro destino.
      percebi q o qpi do google dá erro.
       
      alguem tem alguma ideia do q posso fazer?
    • Por Gustavo Menezes
      Bom Dia amigos, duvidas nesse script...
      id em
      <a class="page-scroll" e resposta para
      <input type="text" mas o valor de resposta esta em outra
      <div class="container" É aqui que me gera a duvida
      get no caso o
      document.getElementById("acao") que vai esta apontando la na
      <a class="page-scroll" vai me retorna com valor
      $( "resposta").val( text ); segue abaixo todo o script em que ponto errei
      $( "a" ).click(function() {                     var text = $( this ).text();                     document.getElementById("acao").id = "01";                 $( "resposta").val( text ); tenho uma duvida em fazer para ele me retorna esse valor na
      <input type="text" que no caso recebo do script e me da o valor
      $( "resposta").val( text ); help ai ✌  
    • Por Dinho Nunes LC
      Como posso adicionar uma terceira opção a essa td?
       
      Funciona assim.
       
      <td align="center"> <?php if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} ?> </td>
       
      Resultado atual.
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";}  ~ Exibe Expirado / Está Ok
      = 0 Exibindo "Em 0 Dias"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";}  ~ Exibe a subtração dos dias. / Está Ok
       
      Resultado pretendido
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} Exibe Expirado / Está Ok
      = 0 Exibir a palavra "Hoje"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} Exibe a subtração dos dias. / Está Ok
×

Informação importante

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