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

Formulario com Campos Repetitivos


eDuArDoXP

Pergunta

Galera não to entendendo o Array e Foreach, alguém pode me ajudar na logica desses parametros?
Montei um formulario em HTML porem tem diversos campos repetitivos que vai de 1 a 50 com os campos:
"Nome" e "Cpf"
(Obs.: O Form ta funcionando mas ta muito grosseiro)
Exemplo: ( o cod ta exemplificado abaixo)

HTML


<input name="nomefuncionario1" type="text" class="input" id="nomefuncionario"

<input name="cpffuncionario1" type="text" class="input" id="cpffuncionario"



<input name="nomefuncionario2" type="text" class="input" id="nomefuncionario"

<input name="cpffuncionario2" type="text" class="input" id="cpffuncionario"



<input name="nomefuncionario50" type="text" class="input" id="nomefuncionario"

<input name="cpffuncionario50" type="text" class="input" id="cpffuncionario"

PHP


// RECEBE OS VALORES VINDO DO FORMULÁRIO

$nomefuncionario1 = $_POST['nomefuncionario1'];

$nomefuncionario2 = $_POST['nomefuncionario2'];

$nomefuncionario50 = $_POST['nomefuncionario50'];

$cpffuncionario1 = $_POST['cpffuncionario1'];

$cpffuncionario2 = $_POST['cpffuncionario2'];

$cpffuncionario50 = $_POST['cpffuncionario50'];



// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)

$configuracao_da_mensagem_original="

DADOS FUNCIONARIO = $nomefuncionario1 - CPF = $cpffuncionario1\n

DADOS FUNCIONARIO = $nomefuncionario2 - CPF = $cpffuncionario2\n

DADOS FUNCIONARIO = $nomefuncionario50 - CPF = $cpffuncionario50\n

";


Gostaria de pedir 2 ajudas
1 - Transformar esse cod. em array.
2 - Não receber os 50 campos, e sim somente os campos de funcionarios preenchidos no html.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Vamos por partes
Primeiro, quando você utiliza o HTML assim
<input name="nomefuncionario1" type="text" class="input" id="nomefuncionario" />
<input name="cpffuncionario1" type="text" class="input" id="cpffuncionario" />

Você já sabe que receberá isso no $_POST

<?php
$_POST['nomefuncionario1'];
$_POST['nomefuncionario2'];
?>

Porém se você utilizar assim

<input name="nomefuncionario[]" type="text" class="input" id="nomefuncionario" />
<input name="cpffuncionario[]" type="text" class="input" id="cpffuncionario" />
<input name="nomefuncionario[]" type="text" class="input" id="nomefuncionario" />
<input name="cpffuncionario[]" type="text" class="input" id="cpffuncionario" />
Obs.:Repare nos colchetes
Você receberá isso no $_POST
<?php
$_POST['nomefuncionario'][0];
$_POST['nomefuncionario'][0];
$_POST['nomefuncionario'][1];
$_POST['nomefuncionario'][1];
?>

Utilizando da segunda forma você receberá uma matriz no $_POST mais ou menos assim.

array(2) {
  ["nomefuncionario"]=>
  array(7) {
    [0]=>
    string(6) "teste1"
    [1]=>
    string(6) "teste2"
    [2]=>
    string(0) ""
    [3]=>
    string(0) ""
    [4]=>
    string(6) "teste5"
    [5]=>
    string(6) "teste6"
    [6]=>
    string(6) "teste7"
  }
  ["cpffuncionario"]=>
  array(7) {
    [0]=>
    string(4) "cpf1"
    [1]=>
    string(0) ""
    [2]=>
    string(4) "cpf3"
    [3]=>
    string(0) ""
    [4]=>
    string(0) ""
    [5]=>
    string(0) ""
    [6]=>
    string(4) "cpf7"
  }
}

Então você poderá usar esse foreach:

<?php
foreach($_POST['nomefuncionario'] as $key => $func) {
	$configuracao_da_mensagem_original .= "DADOS FUNCIONARIO = $func - CPF = {$_POST['cpffuncionario'][$key]}\n";
}
?>

Se você não quiser escrever quando OS DOIS campos estiverem vazios faça

<?php
foreach($_POST['nomefuncionario'] as $key => $func) {
	if (!empty($func) and !empty($_POST['cpffuncionario'][$key])) {
		$configuracao_da_mensagem_original .= "DADOS FUNCIONARIO = $func - CPF = {$_POST['cpffuncionario'][$key]}\n";
	}
}
?>

Se você não quiser escrever quando APENAS UM DOS DOIS campos estiver vazio faça

<?php
foreach($_POST['nomefuncionario'] as $key => $func) {
	if (!empty($func) or !empty($_POST['cpffuncionario'][$key])) {
		$configuracao_da_mensagem_original .= "DADOS FUNCIONARIO = $func - CPF = {$_POST['cpffuncionario'][$key]}\n";
	}
}
?>
Editado por Markus Magnus
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...