Ir para conteúdo

POWERED BY:

Arquivado

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

Esvaldo Marcos

Enviar campos clonados por $_POST (PHP)

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

os 'name' dos inputs estão iguais neh?

Caso sim, esse é o motivo....

 

 

Para utilizar o mesmo name em diversos elementos só passar por '[]'

 

Ex de como deve ficar seu html:

<form action="" method="post">
	<input type="text" name="campos[]" />
	<input type="text" name="campos[]" />
</form>

E vai receber uma lista com os nomes.

 

Ai só fazer a interação pelo php da seguinte forma:

<?php

foreach($_POST['campos'] as $campo){
	echo $campo . '<br />';
}

Assim você trabalha com essa lista de 'campos'

foreach ->

Para Cada 'campos' transformar na variavel 'campo'.

exiba variavel 'campo'

Compartilhar este post


Link para o post
Compartilhar em outros sites

os 'name' dos inputs estão iguais neh?

Caso sim, esse é o motivo....

 

 

Para utilizar o mesmo name em diversos elementos só passar por '[]'

 

Ex de como deve ficar seu html:

<form action="" method="post">
	<input type="text" name="campos[]" />
	<input type="text" name="campos[]" />
</form>

E vai receber uma lista com os nomes.

 

Ai só fazer a interação pelo php da seguinte forma:

<?php

foreach($_POST['campos'] as $campo){
	echo $campo . '<br />';
}

Assim você trabalha com essa lista de 'campos'

foreach ->

Para Cada 'campos' transformar na variavel 'campo'.

exiba variavel 'campo'

No form os NAME tem nomes diferentes, mais ao clonar sim, todas linhas "herdam" o mesmo nome.

 

Veja o form:

<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-->

Envia.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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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