Ir para conteúdo
Fórum Script Brasil
  • 0

Enviar campos clonados por $_POST (PHP)


Esvaldo Marcos

Pergunta

Salve galera, este é meu primeiro post aqui (não sei se está no lugar correto), sou super iniciante em PHP e JavaScript, é o seguinte:

 

Tenho um formulário HTML e neste formulário tem uma tabela, esta tabela tem apenas uma linha com alguns inputs, quando clico num botão ADICIONAR LINHAS, é acrescentado mais uma linha na tabela, até aí tá tudo ok.

 

Eu preencho a primeira linha da tabela, adiciono outra linha e preencho e assim sucessivamente.

 

Só que ao enviar os dados para o email via $_POST, recebo todos os dados do formulário, inclusive a tabela, porém só recebo a última linha adicionada na tabela. Não chega no email a tabela inteira.

 

Se eu adicionar:

linha 1

linha2

linha3

linha4

linha5

 

Só recebo a linha 5.

 

Alguém tem alguma idéia? 

 

Segue o código utilizado:

form.php

<tr class="linhas">
    <td><div class="tabela-quant">
		<div class="col-md-1">
		<input id="textinput_quant" name="textinput_quant"  required="required" type="text" class="form-control input-md"> 
		</div>
		   </div>
	</td>

    <td><div class="tabela-compr">
		<div class="col-md-1">
		<input id="textinput_compr" name="textinput_compr"  required="required"  type="text" class="form-control input-md"> 
		</div>
		   </div>
	</td>
	
    <td><div class="tabela-larg">
		<div class="col-md-1">
		<input id="textinput_larg" name="textinput_larg"  required="required"  type="text" class="form-control input-md"> 
		</div>
		   </div>
	</td>

    <td div class="tabela-rotacao">
    <select id="select_rotacao" name="select_rotacao" class="form-control">
	  <option value="NÃO">NÃO</option>
      <option value="SIM">SIM</option>
    </select>
  </div>
	</td>
	
	    <td div class="tabela-borda-sup">
    <select id="select_borda_sup" name="select_borda_sup" class="form-control">
	  <option value="NÃO">NÃO</option>
      <option value="SIM">SIM</option>
    </select>
  </div>
	</td>
	
	    <td div class="tabela-borda-inf">
    <select id="select_borda_inf" name="select_borda_inf" class="form-control">
	  <option value="NÃO">NÃO</option>
      <option value="SIM">SIM</option>
    </select>
  </div>
	</td>
	
	    <td div class="tabela-borda-dir">
    <select id="select_borda_dir" name="select_borda_dir" class="form-control">
	  <option value="NÃO">NÃO</option>
      <option value="SIM">SIM</option>
    </select>
  </div>
	</td>
	
	    <td div class="tabela-borda-esq">
    <select id="select_borda_esq" name="select_borda_esq" class="form-control">
	  <option value="NÃO">NÃO</option>
      <option value="SIM">SIM</option>
    </select>
  </div>
	</td>
	
	    <td><div class="tabela-larg">
		<div class="col-md-1">
		<input id="textarea_etiqueta" name="textarea_etiqueta" type="text" class="form-control input-md"> 
		</div>
		   </div>
	</td>
	    <td><a href="#" class="removerCampo" title="Excluir"><img src="http://www.norteplac.com.br/wp-content/themes/i-max/images/recycle.png" widht="32px" height="32px" border="0" align="center"></img></a></td>
</tr><!--FIM DA LINHA DA TABELA-->

enviar.php

<?php
//Variaveis

$textinput_numero = $_POST['textinput_numero'];
$textinput_nome = $_POST['textinput_nome'];
$textinput_email = $_POST['textinput_email'];
$textinput_telefone = $_POST['textinput_telefone'];
$textinput_projeto = $_POST['textinput_projeto'];
$select_vendedor = $_POST['select_vendedor'];
$select_material = $_POST['select_material'];
$select_faces = $_POST['select_faces'];
$select_espessura = $_POST['select_espessura'];
$textarea_obs = $_POST['textarea_obs'];
$data_envio = date('d/m/Y');

$textinput_quant = $_POST['textinput_quant'];
$textinput_compr = $_POST['textinput_compr'];
$textinput_larg = $_POST['textinput_larg'];
$select_rotacao = $_POST['select_rotacao'];
$select_borda_sup = $_POST['select_borda_sup'];
$select_borda_inf = $_POST['select_borda_inf'];
$select_borda_dir = $_POST['select_borda_dir'];
$select_borda_esq =$_POST['select_borda_esq'];
$textarea_etiqueta = $_POST['textarea_etiqueta'];




// -------------

// Corpo E-mail

	
	$arquivo = "
	<style type='text/css'>
	body {
	margin:20px;
	font-family:Verdana;
	font-size:10px;
	color: #666666;
	}
	a{
	color: #666666;
	text-decoration: none;
	}
	a:hover {
	color: #FF0000;
	text-decoration: none;
	}
	</style>
    <html>
        <table width='510' border='1' cellpadding='1' cellspacing='1' bgcolor='#CCCCCC'>
            <tr>
              <td>
			  	<tr>
                 <td width='500'><b>Número:</b> $textinput_numero</td>
                </tr>
			    <tr>
                 <td width='500'><b>Nome:</b> $textinput_nome</td>
                </tr>
                <tr>
                  <td width='320'><b>E-mail:</b> $textinput_email</td>
	            </tr>
				<tr>
                  <td width='320'><b>Telefone:</b> $textinput_telefone</td>
                </tr>
				<tr>
                  <td width='320'><b>Projeto:</b> $textinput_projeto</td>
                </tr>
				<tr>
				<td width='320'><b>Vendedor:</b> $select_vendedor</td>
				</tr>
				<tr>
				<td width='320'><b>Material:</b> $select_material</td>
				</tr>
				<tr>
				<td width='320'><b>Faces:</b> $select_faces</td>
				</tr>
				<tr>
				<td width='320'><b>Espessura:</b> $select_espessura</td>
				</tr>
				<tr>
                  <td width='320'><b>OBS:</b> $textarea_obs</td>
                </tr>
            </td>
          </tr>  
          <tr>
            <td>Este e-mail foi enviado em <b>$data_envio</b></td>
          </tr>
        </table>
		<h2>CORTES</h2>
		<table width='810' border='1' cellpadding='1' cellspacing='1' bgcolor='#ffffff'>
            <tr>
              <td>
			    <tr>
                 <td width='50'><b>QTD</b></td>
				 <td width='80'><b>COMP. (mm)</b></td>
				 <td width='80'><b>LARG. (mm)</b></td>
				 <td width='50'><b>ROTAÇÃO</b></td>
				 <td width='50'><b>BORDA SUP.</b></td>
				 <td width='50'><b>BORDA INF.</b></td>
				 <td width='50'><b>BORDA DIR.</b></td>
				 <td width='50'><b>BORDA ESQ.</b></td>
				 <td width='50'><b>ETIQUETA</b></td>
                </tr>
			    <tr>
                 <td width='50'>$textinput_quant</td>
				 <td width='80'>$textinput_compr</td>
				 <td width='80'>$textinput_larg</td>
				 <td width='50'>$select_rotacao</td>
				 <td width='50'>$select_borda_sup</td>
				 <td width='50'>$select_borda_inf</td>
				 <td width='50'>$select_borda_dir</td>
				 <td width='50'>$select_borda_esq</td>
				 <td width='50'>$textarea_etiqueta</td>
                </tr>
		
            </td>
          </tr>  
        </table>
    </html>
	";

// -------------------------

//enviar
	
	// emails para quem será enviado o formulário
	$email = "email@email";
	$destino = $email;
	$assunto = "Plano de Corte via Site";

	// É necessário indicar que o formato do e-mail é html
	$headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-UTF-8' . "\r\n";
    $headers .= 'From: Destinatário <email@email.com>';
	//$headers .= "Bcc: $EmailPadrao\r\n";
	
	$enviaremail = mail($destino, $assunto, $arquivo, $headers);
	if($enviaremail){
	$mgm = "E-MAIL ENVIADO COM SUCESSO! <br> O link será enviado para o e-mail fornecido no formulário";
	echo " <meta http-equiv='refresh' content='1;URL=/plano-de-corte'>";
	echo "<script>alert('Seu Plano de Corte foi enviado com sucesso!');</script>";
	} else {
	$mgm = "ERRO AO ENVIAR E-MAIL!";
	echo "";
	}
?>

Da forma que está, eu recebo no email tudo certinho, menos a tabela que só chega a última linha.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Não vi onde o form é criado, nem o script que "clona" alguma coisa

Mas provavelmente, se você estiver clonando os inputs html, vai precisar usar arrays nos varnames. Ex.:

<input id="textinput_quant" name="textinput_quant[]" ...

<input id="textinput_compr" name="textinput_compr[]" ...

Se as ids forem realmente necessárias, o sr. vai ter que bolar uma forma de alterá-las.

Se não forem, pode remover essas ids

Os names dos inputs devem fazer sentido por si só. Os que já são naturalmente text input, não precisam ter textinput nos names. Pois isso é redundante e desnecessário.

Link para o comentário
Compartilhar em outros sites

  • 0
13 horas atrás, lowys disse:

Olá!

Não vi onde o form é criado, nem o script que "clona" alguma coisa

Mas provavelmente, se você estiver clonando os inputs html, vai precisar usar arrays nos varnames. Ex.:

<input id="textinput_quant" name="textinput_quant[]" ...

<input id="textinput_compr" name="textinput_compr[]" ...

Se as ids forem realmente necessárias, o sr. vai ter que bolar uma forma de alterá-las.

Se não forem, pode remover essas ids

Os names dos inputs devem fazer sentido por si só. Os que já são naturalmente text input, não precisam ter textinput nos names. Pois isso é redundante e desnecessário.

Opa, obrigado pelo retorno.

Eu postei somente a parte da tabela que é clonada.

Eu até usei array, porém minha dúvida maior é como o enviar.php vai receber esses array, note que no enviar.php está assim:

 				<td width='50'>$textinput_quant</td>
				 <td width='80'>$textinput_compr</td>
				 <td width='80'>$textinput_larg</td>
				 <td width='50'>$select_rotacao</td>
				 <td width='50'>$select_borda_sup</td>
				 <td width='50'>$select_borda_inf</td>
				 <td width='50'>$select_borda_dir</td>
				 <td width='50'>$select_borda_esq</td>
				 <td width='50'>$textarea_etiqueta</td>
                </tr>

Acredito que tenha que substituir isso pela array e não consegui.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...