Jump to content


Photo

Duvida Em For


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

#1 Pedro Lopes

Pedro Lopes

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Não informado

Posted 01/03/2006, 08:31

bom dia galera,


seguinte.. pego 27 valores de um form onde os campos
chamam 'qtd18' até 'qtd45', preciso mostra-los e quero
fazer atraves de um for mas nao ta dando certo...

o codigo é esse:
for ($i=18;$i<=45;$i++) {
echo $qtd[$i];
}

alguem pode me dizer pq nao está mostrando
os campos???


valeu!

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 01/03/2006, 08:47

Veja um exemplo:

<?php

    $var18 = 'a';
    $var27 = 'b';

    for ($i = 18; $i <= 27; $i++) {
    
        $var = eval("print \$var$i;");
        print $var . '<br />';
        
    }
    
?>

Mas talvez não precisasse utilizar dessa forma, na página que recebe os dados do formulário, coloque print_r($_POST); para nós termos uma noção do que se trata, e esses campos são de que tipo?

Leitura:
http://www.php.net/eval
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 Pedro Lopes

Pedro Lopes

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Não informado

Posted 01/03/2006, 09:14

são inputs tipo text.. tipo assim

<input type="text" size="1" name="qtd18" />

em name"" comeca no 18 vai ate o 45...

ai depois de enviar o form preciso testar se o valor postado
está entre 1 e 9

entao pensei no seguinte
for($i=18;$i<=45;$i++){
   if ($qtd[$i] <= 9)  { echo menor; } else { echo maior/ }
}

Edição feita por: Pedro Lopes, 01/03/2006, 09:18.


#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 01/03/2006, 09:54

Você pode criar um array do campo, exemplo:
<input type="text" name="qts[18]" />
<input type="text" name="qts[19]" />
<input type="text" name="qts[20]" />

E na hora de verificar o valor do campo:
   foreach ($_POST['qts'] as $Numero => $Valor) {
    
        if (($Valor >= 1) and ($Valor <= 9)) {
            print "O valor do campo {$Numero} é {$Valor}<br />";
        }
        
    }

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 Pedro Lopes

Pedro Lopes

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Não informado

Posted 01/03/2006, 10:18

hmmm nao entendo mto de arrays ainda Eclesiastes,
ai na hora de gravar no banco qual nome eu colocar
na query??

qtd[18]
qtd[19]
.
.
.
.

seria isso?

#6 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 01/03/2006, 10:53

pelo o q eu entendi ele so quer exibir os valores....

for ($i=18;$i<=45;$i++) {
echo $_POST['qtd.$i'];
}

seria isso cara?!!

qnd vc usa [], vc esta montando um array ;)

Edição feita por: gonacts, 01/03/2006, 10:54.

"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#7 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 01/03/2006, 11:41

hmmm nao entendo mto de arrays ainda Eclesiastes,
ai na hora de gravar no banco qual nome eu colocar
na query??

qtd[18]
qtd[19]
.
.
.
.

seria isso?

Sim, chame dessa forma:
$POST['qtd'][18]
$POST['qtd'][19]

Mas se desejar chamar:
$qtd[18];
$qtd[19];

Extraia os valores $_POST, criando assim um variável com o índice do array e tendo os valores como seu valor.

Como fazer isso?

Com essa função:
extract($_POST);

Após o uso dessa função você poderá chamar a variável como: $qtd[18];


Leitura:
http://www.php.net/array
http://www.php.net/extract
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#8 Pedro Lopes

Pedro Lopes

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Não informado

Posted 01/03/2006, 13:15

sim Senhor Eclesiastes.. mto obrigado pela atencao!!
foi uma solucao que consegui adpatar no que eu queria...

gonacts.. seu metodo funcionou... mostrou certinho assim:

echo $_POST[qtd.$i];


valeu galera, obrigado a todos!


t+

Edição feita por: Pedro Lopes, 01/03/2006, 13:29.





0 user(s) are reading this topic

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

IPB Skin By Virteq