Jump to content


Photo

$Variavel Dentro Do $_Post


  • Faça o login para participar
6 replies to this topic

#1 knoxville

knoxville

    Backdoor Man

  • Usuários
  • 951 posts
  • Sexo:Masculino
  • Localidade:Itajaí - SC

Posted 14/01/2010, 12:12

fala pessoal,

estou com um problema que é o seguinte...
tenho um form, q é gerado por um loop, fazendo os input text desse jeito:
echo '<input type="text" name="email'.$contador.'">';

como faço pra pegar o valor disto depois também em loop?
estou tentando assim, mas não dá:
for($contador=0;$contador<50;$contador++){
  $email = "email".$contador;
  echo $_POST[$email] . "<br>"; // NAO FUNCIONA

// ou

  $email = $_POST['email'.$contador];
  echo $email . "<br>"; // TAMBEM NAO FUNCIONA
}
alguém saberia como fazer isto?

muito obrigado! :D

#2 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 14/01/2010, 13:39

Amigo, boa tarde.
Tudo bom?

Não vou te dar o peixe!
Vou te ensinar a pescar...

echo "<pre>";
var_dump($_POST);

Agora você terá a lista completa de todas as variáveis que vieram via POST.
Com isso em mãos, tenho certeza que terá condições de montar um loop para recuperar as variáveis...

Outra coisa.
A princípio, os loops estão corretos...
Tente isso:
echo "<input type='text' name='email$contador'>";
Só matei a concatenação.

Depois volte ai com o resultado!

Abraços amigo e até a próxima.
Mateus Antunes
Mateus Antunes
MBASistemas

#3 knoxville

knoxville

    Backdoor Man

  • Usuários
  • 951 posts
  • Sexo:Masculino
  • Localidade:Itajaí - SC

Posted 14/01/2010, 14:02

MBA, agradeço a vara que me deu
procurei uma aula de pescaria (http://php.net/manua...on.var-dump.php) mas ainda não consegui pegar peixe nenhum :(
tem como me arrumar um molinete também? :P

valeeu! (y)

#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 14/01/2010, 14:20

Da forma que você está passando fica difícil pegar os valores depois... :ponder:

É melhor passar os valores em um array. Veja:

echo '<input type="text" name="email[]">';

Assim, $_POST['email'] será um array. Todos os e-mails estarão nele, você pode fazer um foreach, um implode(), você decide...

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#5 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 14/01/2010, 15:03

Com certeza a forma em que o sem.Ponto descreveu é melhor.
É quase um molinete!
=D

Só não é bom se você estiver tratando alguma coisa específica no formulário.
Como uma validação pontual ou coisas do gênero.

Se o array atender, com o POST em mãos, basta usar o foreach e a dor acabou!

Abraços.
Mateus
Mateus Antunes
MBASistemas

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 14/01/2010, 15:40

Só não é bom se você estiver tratando alguma coisa específica no formulário.
Como uma validação pontual ou coisas do gênero.

Por causa da referência do campo? Para isto existe o atributo id. O name é só para fins de envio de dados mesmo, não foi designado para ser acessado via script, embora isto seja possível. Esta é uma das reformas do XHTML.

[]’sAté mais

#7 knoxville

knoxville

    Backdoor Man

  • Usuários
  • 951 posts
  • Sexo:Masculino
  • Localidade:Itajaí - SC

Posted 14/01/2010, 17:46

ae galera...
eu tinha lembrado de um tutorial de multiplo upload que vi há muito tempo aqui e nele usa-se o input com []
nao tinha tentado usar ele, pq pensei que quando o campo estava vazio, ele nao retornava nada, mas depois do animo que vocês me deram, resolvi testar e vi que dá certo! :D
<?php
echo '<form method="post" action="teste2.php">';
for($coisa=0;$coisa<10;$coisa++){
 echo '<input type="text" name="coisa[]"><br>';
}
echo "<input type=submit value=enviar></form>";
?>
ai pra pegar...
<?php
foreach ($_POST['coisa'] as $cooisa => $valor){
 echo "$cooisa tem valor $valor <BR>";
}
?>
me retorna:

0 tem valor
1 tem valor
2 tem valor gdfsgfds
3 tem valor
4 tem valor
5 tem valor
6 tem valor
7 tem valor gfdsnhds
8 tem valor
9 tem valor


opaaaa \o/ :D

agora, a título de curiosidade a aprendizado, MBA, já que já tenho um peixe, se não for te dar mto trabalho pode me dar outro?

valeu galera!! (y)



--------------------------------------------


ah, mais uma coisinha... se for mais de um input[] como faço pra por dentro do mesmo foreach?

valeeeu! ;)

<?php
foreach ($_POST['email'] as $i => $email){
 $nome = $_POST['nome'][$i];
 echo "$email - $nome";
}
?>
:D

Edição feita por: knoxville, 14/01/2010, 17:47.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq