Ir para conteúdo

POWERED BY:

Arquivado

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

maurohpg

Recuperar Array Formulario

Recommended Posts

Boa Tarde Srs. estou com uma duvida que parece ser muito simples mais como nunca usei estou empacado nisso, vejam se podem me ajudar. Eu tenho um formulário com campos dinâmicos que o usuário pode ir adicionando conforme deseja, é uma listagem de compras de um supermercado.
 

<label>Preencha os campos abaixo com os produtos que deseja comprar:</label>
<br />
<table border="0" cellpadding="5" id="listas">
	<tr>
		<th style="color:#000;" align="center">Produto/Descrição</th>
		<th style="color:#000;" align="center">Marca</th>
		<th style="color:#000;" align="center">Quantidade</th>
	</tr>
	<tr>
		<td align="center"><input type="text" name="produto[]" id="produto" maxlength="150"></td>
		<td align="center"><input type="text" name="marca[]" id="marca" maxlength="150"></td>
        <td align="center"><input type="text" name="quantidade[]" id="quantidade" maxlength="10"></td>
	</tr>
</table>
<br />
  <input type="button" id="add_field" value="Adicionar">

Quando a pessoa envia o formulário os dados que a pessoa preenche Marca, Produto e Quantidade não vem junto com o form. Fiz de algumas formas para recuperar esse array, mais não estou conseguindo. Vejam como estou fazendo no momento.

 

<?php
if(strpos($_SERVER['HTTP_REFERER'],'super.com.br')) {
session_start();

// chamada da classe phpmailer
require_once('mailer/class.phpmailer.php');
require_once('mailer/class.smtp.php');

// resgatando os dados passados pelo form
$assunto = "Compras Online";
$nome=$_POST["nome"];
$email=$_POST["email"];
$telefone=$_POST["telefone"];
$celular=$_POST["celular"];
$endereco=$_POST["endereco"];
$horario=$_POST["horario"];
$pagamento=$_POST["pagamento"];
$produto=$_POST["produto"];
$marca=$_POST["marca"];
$quantidade=$_POST["quantidade"];
$cartao=$_POST["cartao"];
$cpf=$_POST["cpf"];
$data      = date("d/m/y");  //hidden
$hora      = date("H:i");  //hidden
$ip        = $_SERVER['REMOTE_ADDR'];  //hidden
$navegador = $_SERVER['HTTP_USER_AGENT']; //hidden

// faço a chamada da classe
$Email = new PHPMailer();

$Email->IsSMTP();            // set mailer to use SMTP
$Email->SMTPAuth = true;     // turn on SMTP authentication
$Email->Port = 587; 
$Email->Host     = "smtp";
$Email->Username = "site@";
$Email->Password = "senha";
$Email->IsMail();                        // ativa o envio de e-mails em HTML, se false, desativa.
$Email->Mailer = "smtp";

$Email->SetLanguage("br");
// esta chamada diz que o envio será feito através da funçao mail do php. Voce mudar para sendmail, qmail, etc
// se quiser utilizar o programa de email do seu unix/linux para enviar o email
//$Email->IsMail(); // ativa o envio de e-mails em HTML, se false, desativa.
$Email->IsHTML(true); 
// email do remetente da mensagem
$Email->From = "site@super.com.br";
// nome do remetente do email
$Email->FromName = $nome;
// Endereço de destino do emaail, ou seja, pra onde voce quer que a mensagem do formulário vá?
$Email->AddAddress("aqui vai o e-mail que recebe","Compras Online");
// informando no email, o assunto da mensagem
$Email->Subject = $assunto; 
// Define o texto da mensagem (aceita HTML)
$Email->Body .= "

$amount=6; //amount shows the number of data I want to repeat
for( $i = 0; $i < $amount; $i++ ) {

<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
</head>
<body bgcolor='#ffffff'>
<table width='100%' border='0' cellspacing='0' cellpadding='5'>
<tr>
<td height='50' colspan='3' bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='3' color='#8f211e'><img src='http://www.super.com.br/img/logo-topo.png'></font></td>
</tr>
<tr>
<td colspan='3'>&nbsp;</td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Nome: $nome</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>E-mail: $email </font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Telefone: $telefone</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Telefone: $celular</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Endere&ccedil;o de entrega: $endereco</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Hor&aacute;rio de entrega: $horario</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Forma de pagamento: $pagamento</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Cart&atilde;o Coperclube: $cartao</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>CPF: cpf</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Data: $data</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>IP: $ip</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Navegador: $navegador</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Hora: $hora</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'>&nbsp;</td>
</tr>
<tr>
  <td width='43%' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Produto/Descri&ccedil;&atilde;o</font></td>
  <td width='28%' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Marca</font></td>
  <td width='29%' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Quantidade</font></td>
</tr>
<tr>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>'.$produto[$i].'</font></td>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>'.$marca[$i].'</font></td>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>'.$quantidade[$i].'</font></td>
</tr>
 <tr>
  <td colspan='3' bgcolor='#FFFFFF'>&nbsp;</td>
</tr>
<tr>
<td colspan='3' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>www.super.com.br</font></td>
</tr>
</table>
</body>
</html>
 }
"
;

if(!$Email->Send())   {

        echo "<h2>A mensagem nao foi enviada. </h2><p><br>";
        echo "Erro: " . $Email->ErrorInfo;
}else{
    	echo "
	<META HTTP-EQUIV=REFRESH CONTENT='0; URL=../obrigado.php'>
	";
 }
 }
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabio, obrigado ja havia visto na documentação do php e entendi como fazer, agora tem uma coisa que não estou entendendo como fazer, pois eu consegui recuperar os dados array, mais só consigo recuperar os primeiros campos dinâmicos, fiz dessa forma. Agora minha dúvida é como fazer um while dentro do 

$Email->Body para recuperar todos os dados da tabela abaixo:

<tr>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$produto[$i]</font></td>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$marca[$i]</font></td>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$quantidade[$i]</font></td>
</tr>

 

<?php
// chamada da classe phpmailer
require_once('mailer/class.phpmailer.php');
require_once('mailer/class.smtp.php');

// resgatando os dados passados pelo form
if ($_POST){
$assunto = "Compras Online";
$nome=$_POST["nome"];
$email=$_POST["email"];
$telefone=$_POST["telefone"];
$celular=$_POST["celular"];
$endereco=$_POST["endereco"];
$horario=$_POST["horario"];
$pagamento=$_POST["pagamento"];
$cpf=$_POST["cpf"];
$produto=$_POST["produto"];
$marca=$_POST["marca"];
$quantidade=$_POST["quantidade"];
$cartao=$_POST["cartao"];
$cpf=$_POST["cpf"];
$data      = date("d/m/y");  //hidden
$hora      = date("H:i");  //hidden
$ip        = $_SERVER['REMOTE_ADDR'];  //hidden
$navegador = $_SERVER['HTTP_USER_AGENT']; //hidden

   // exibindo os dados
   	for ($i=0; $i<$quant_linhas; $i++) {
	echo  "Produto: ".$produto[$i]."<br />";
	echo  "Marca: ".$marca[$i]."<br />";
	echo  "Quantidade: ".$quantidade[$i]."<br />";
   }

// chamada da classe
$Email = new PHPMailer();

$Email->IsSMTP();            // set mailer to use SMTP
$Email->SMTPAuth = true;     // turn on SMTP authentication
$Email->Port = 587; 
$Email->Host     = "";
$Email->Username = "";
$Email->Password = "";
$Email->IsMail();                        // ativa o envio de e-mails em HTML, se false, desativa.
$Email->Mailer = "smtp";

$Email->SetLanguage("br");
// esta chamada diz que o envio será feito através da funçao mail do php. Voce mudar para sendmail, qmail, etc
// se quiser utilizar o programa de email do seu unix/linux para enviar o email
//$Email->IsMail(); // ativa o envio de e-mails em HTML, se false, desativa.
$Email->IsHTML(true); 
// email do remetente da mensagem
$Email->From = "";
// nome do remetente do email
$Email->FromName = $nome;
// Endereço de destino do emaail, ou seja, pra onde voce quer que a mensagem do formulário vá?
$Email->AddAddress("","Compras Online");
// informando no email, o assunto da mensagem
$Email->Subject = $assunto; 
// Define o texto da mensagem (aceita HTML)
$Email->Body = "

<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
</head>
<body bgcolor='#ffffff'>
<table width='100%' border='0' cellspacing='0' cellpadding='5'>
<tr>
<td height='50' colspan='3' bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='3' color='#8f211e'></font></td>
</tr>
<tr>
<td colspan='3'>&nbsp;</td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Nome: $nome</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>E-mail: $email </font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Telefone: $telefone</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Telefone: $celular</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Endere&ccedil;o de entrega: $endereco</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Hor&aacute;rio de entrega: $horario</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Forma de pagamento: $pagamento</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Cart&atilde;o Coperclube: $cartao</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>CPF: cpf</font></td>
</tr>
<tr>
  <td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Data: $data</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>IP: $ip</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Navegador: $navegador</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>Hora: $hora</font></td>
</tr>
<tr>
<td colspan='3' bgcolor='#FFFFFF'>&nbsp;</td>
</tr>
<tr>
  <td width='43%' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Produto/Descri&ccedil;&atilde;o</font></td>
  <td width='28%' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Marca</font></td>
  <td width='29%' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Quantidade</font></td>
</tr>
<tr>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$produto[$i]</font></td>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$marca[$i]</font></td>
  <td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$quantidade[$i]</font></td>
</tr>
 <tr>
  <td colspan='3' bgcolor='#FFFFFF'>&nbsp;</td>
</tr>
<tr>
<td colspan='3' bgcolor='#3A6014'><font face='Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'></font></td>
</tr>
</table>
</body>
</html>
";

if(!$Email->Send())   {

        echo "<h2>A mensagem nao foi enviada. </h2><p><br>";
        echo "Erro: " . $Email->ErrorInfo;
}else{
    	echo "
	<META HTTP-EQUIV=REFRESH CONTENT='0; URL=../obrigado.php'>
	";
 }
 }
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda, problema resolvido, bem simples.
 

for ($i=0; $i<$quant_linhas; $i++) {
$Email->Body .= "<tr>";
$Email->Body .= "<td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$produto[$i]</font></td>";
$Email->Body .= "<td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$marca[$i]</font></td>";
$Email->Body .= "<td bgcolor='#ffffff'><font face='Arial, Helvetica, sans-serif' size='2' color='#3A6014'>$quantidade[$i]</font></td>";
$Email->Body .= "</tr>";
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

×

Informação importante

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