Jump to content
Folcks

Código em JavaScript não executa corretamente um script em PHP

Recommended Posts

Boa tarde pessoal,

 

Eu fiz um código em JavaScript que chama um script em PHP para o envio de um e-mail padrão para uma determinada lista fixa de contatos, anexando neste e-mail um arquivo que está no servidor.

Porém, ao executar esse código em JavaScript, o e-mail é enviado, mas o anexo não é colocado na mensagem. Se eu rodar manualmente o script em PHP que é chamado pelo código de JavaScript "# php send.php", o e-mail passa a ser enviado com o anexo.

 

Vocês podem me ajudar, por favor? Acredito que seja algo relacionado à permissões, porém eu não estou encontrando a solução.

 

 

Aqui está o código em JavaScript:

$scope.sendMail = function() {
	jQuery.ajax({
	    type: "POST",
	    url: root.root + "send.php",
	    data: $scope.contact,
	    success: function() {
		console.log('sucesso!');
		jQuery('.log-message').html(alert ("Mensagem enviada com sucesso!\n\nEm breve retornaremos seu e-mail com uma resposta. Obrigado."));
	    }
	});
}
 }

 

Share this post


Link to post
Share on other sites

altere

jQuery('.log-message').html(alert ("Mensagem enviada com sucesso!\n\nEm breve retornaremos seu e-mail com uma resposta. Obrigado."));

para

jQuery('.log-message').html("Mensagem enviada com sucesso!\n\nEm breve retornaremos seu e-mail com uma resposta. Obrigado.");

 

 
 

Share this post


Link to post
Share on other sites
On 7/5/2019 at 9:42 PM, Marcos_imasters said:

altere


jQuery('.log-message').html(alert ("Mensagem enviada com sucesso!\n\nEm breve retornaremos seu e-mail com uma resposta. Obrigado."));

para


jQuery('.log-message').html("Mensagem enviada com sucesso!\n\nEm breve retornaremos seu e-mail com uma resposta. Obrigado.");

 

 
 

 

Boa tarde, amigo.

 

Fazendo essas mudanças a mensagem apenas deixa de ser exibida em uma caixa de texto para o usuário e passa a ser mostrada dentro da página do formulário, porém o e-mail ainda continua sendo enviado sem o anexo...

 

Você tem mais alguma sugestão para esse problema?

 

 

Obrigado

Share this post


Link to post
Share on other sites

enviou de anexo via jquery e possivel hoje em dia com https://developer.mozilla.org/en-US/docs/Web/API/FormData 

 

 

exemplo  No evento submit do seu formulário, através do seu ajax você vai enviar o data como new FormData(this). Segue exemplo.

 

<form name="form1" id="send" enctype="multipart/form-data">
  <input type="file" name="nome" />
</form>

e no seu ajax

 

$.ajax({
  url: 'file.php',
  type: 'POST',
  data: new FormData(this),

  success: function(){  }
});

No seu PHP você vai captar o valor da seguinte forma

 

<?php 
  echo $_FILES["nome"]["name"];
?>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Keber_Crato
      Boa noite galera!!  estou com dificuldades em conseguir o somatório de de dois campos de uma tabela e o somatório de um campo de outra tabela,
      segue assim:
      Tenho uma tabela chamada CID_TITULAR  e outra CID_COMPOSICAO. a tabela CID_TITULAR recebe os cadastro de um programa social e a tabela CID_COMPOSICAO o cadastros dos dependentes (filhos, parentes) TITULAR_COD = COMPOSICAO_COD_TITULAR (chave de ligação)
      tenho dois campos na CID_TITULAR de valores, são eles: TITULAR_RENDA e TITULAR_RENDA_MENSAL e na outra tabela CID_COMPOSICAO tenho um campo de valor COMPOSICAO_RENDA
      estão povoado assim:
       
      Na tabela CID_TITULAR nos campos TITULAR_RENDA (R$ 10.00) e TITULAR_RENDA_MENSAL (R$ 10.00) e na tabela CID_COMPOSICAO no campo COMPOSICAO_RENDA tenho 3 registros com os valores R$ 300.00, R$ 200.00 e R$ 100.00
      GOSTARIA QUE A SELEÇÃO FOSSE O VALOR DOS DOIS CAMPOS DA TABELA CID_TITULAR + O CAMPO DA OUTRA TABELA CID_COMPOSICAO
       
      NO CASO O SOMATÓRIO CORRETO SERIA R$ 620,00
      10,00 no campo TITULAR_RENDA
      10,00 no campo TITULAR_RENDA_MENSAL
      300,00 NO 1º REGISTRO no campo COMPOSICAO_RENDA
      200,00 NO 2º REGISTRO no campo COMPOSICAO_RENDA
      100,00 NO 3º REGISTRO no campo COMPOSICAO_RENDA
       
      TOTALIZANDO R$ 620,00
      O PROBLEMA É:
      Quando faço a seleção com inner join a resposta é R$ 660,00 e não 620,00. a seleção triplica o valor da primeira tabela devido ter três registros na tabela CID_COMPOSICAO
       
      TABELA CID_TITULAR
      CREATE TABLE `cid_titular` (
        `titular_cod` int(11) NOT NULL AUTO_INCREMENT,
        `titular_renda` float(10,2) DEFAULT NULL,
        `titular_renda_mensal` float(10,2) DEFAULT NULL,
        PRIMARY KEY (`titular_cod`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
       
      TABELA CID_COMPOSICAO
      CREATE TABLE `cid_composicao` (
        `composicao_cod` int(11) NOT NULL AUTO_INCREMENT,
        `composicao_cod_titular` int(11) DEFAULT NULL,
        `composicao_renda` float(10,2) DEFAULT NULL,
        PRIMARY KEY (`composicao_cod`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
       
       
      GOSTARIA MUITO DE AJUDA GALERA. OBRIGADO!!!!
       

    • By MEGATRON
      Crie um código em JavaScript que receba 2 palavras, e depois as imprima
      intercaladas. Ex.: “Joao” e “Mary”; a impressão deve ser: “JMoaaroy”. Use uma função
      que receba as duas palavras, e faça a intercalação.
    • By Alyss
      Olá!
       
      Esotu com uma certa dificuldade em um projeto que estou desenvolvendo em relação a funcionalidade drag and drop com jQuery/JavaScript.
       
      <div class="pricipal-menu"> <div class="col-1"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-2"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-3"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-4"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> </div> Bom, o que quero fazer é, por exemplo, pegar a img1 da primeira coluna (1, 1) e passá-la para a coluna 2 na posição da img2  (2,2). Até ai tudo bem, o problema é , preciso que quando a img1 for colocada na posição (2,2) a img2 que está na vá para (1,1). Exatamente como um $(...).sortable(), aliás, já tentei até mesmo com o connectWith do sortable(), mas não adianntou muito.
       
      Mais resumidamente, é fazer com que as imagens invertam a posição entre as colunas, mas não sei como.
       
      OBS: já tentei, inclusíve, colocá-las em variáveis pra depois assumirem as posições com o drag'n drop, mas cheguei no mesmo resultado  do connectWith.
       
      Agradeço a atenção!
       
       
    • By malufla79
      Boa tarde, estou com probleminha no phpmailer, o código abaixo funciona corretamente quando consigo enviar para um único e-mail, mas quando coloco a opção todos, ele só manda apenas para primeiro e-mail e não apresenta nenhum erro. Poderia me dar uma ajudinha? Obrigada
       
      Controle
      if ($_POST['filtro'] == 'todos') { // essa consulta pego a lista de e-mails cadastrado no meu banco de dados $usuarios->consultar("select * from mala_email"); $linha = $usuarios->Linha; $rs = $usuarios->Result; } if ($_POST['filtro'] == 'todos') { for ($i=0; $i<$linha; $i++) { $email = $rs[$i]['email']; $mensagem = $_POST['editor']; $util->EnviarEmaiLivre($email, utf8_decode($_POST['assunto']), $mensagem); } } else { $mensagem = $_POST['editor']; $util->EnviarEmaiLivre($_POST['email'], utf8_decode($_POST['assunto']), $mensagem); } Função
      function EnviarEmaiLivre($email, $assunto, $mensagem) { date_default_timezone_set('Etc/UTC'); require 'phpmailer/PHPMailerAutoload.php'; $hostSmtp = "mail.domino.com.br"; $smtpUser = "email@email.com.br"; $senhaSmtp = "********"; $mensagem = ' <p><img src="http://www.dominio.com.br/images/logodolugar.png" alt="Logo do Lugar" width="550"></p> '.$mensagem; //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = $hostSmtp; // use // if your network does not support SMTP over IPv6 //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission $mail->Port = 587; //Set the encryption system to use - ssl (deprecated) or tls $mail->SMTPSecure = 'tsl'; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication - use full email address for gmail $mail->Username = $smtpUser; //Password to use for SMTP authentication $mail->Password = $senhaSmtp; //Set who the message is to be sent from $mail->setFrom('email@email.com.br', 'E-mail do Lugar'); //Set who the message is to be sent to $mail->addAddress($email); //Set the subject line $mail->Subject = $assunto; //Replace the plain text body with one created manually $mail->Body = $mensagem; $mail->isHTML(true); if ($conteudoArquivo != '' && $arquivo != '') { //Attach an image file $mail->addAttachment('phpmailer/images/phpmailer_mini.png'); //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); } if (!$mail->send()) { $retorno = false; } else { $retorno = true; } }  
       
    • By Leandro Volanick
      Boa tarde pessoal.
       
      Gostaria de uma ajuda em uma consulta sql, onde quero agrupar os todos produtos comprados pelo mesmo CPF, dentro de uma array. 
       
      Segue o que estou usando:
      $data=mysqli_query($mysqli, "SELECT xml.id, xml.xProd as produto, prod.id as iddoproduto, GROUP_CONCAT( prod.xProd ) FROM produtos AS prod LEFT JOIN xml as xml ON xml.xProd = prod.xProd GROUP BY xml.CPFdest"); while($info=mysqli_fetch_array($data)) echo '['.$info['iddoproduto'].'],'; No momento, o codigo está trazendo apenas 1 produto, quero que ele printe todos produtos que o CPFdest já comprou.
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.