Devo criar 20 inputs e no final imprimir todos os números das inputs logo abaixo do formulário em php,eis o código:
<?php
function repeteInput(){
for($i = 1; $i <= 20; $i++){
echo '<form method="post" action="repeteInput.php">Digite um número aqui<input type="text" name="produto[]"><br>';
}echo '<input type = "submit" value="Enviar"></form>';
$produtos = $_POST['produto'];
foreach($produtos as $produto){
echo $produto."<br>";
}
}
echo repeteInput();
?>
Quando ponho o código para rodar no navegador aparece:
Invalid argument supplied for foreach() in C:\xampp\htdocs\24.04.2017\repeteInput.php on line 7 , e também aparece : Undefined index: produto in C:\xampp\htdocs\24.04.2017\repeteInput.php on line
- O formulário aparece, já verifiquei o código e ele está exatamente igual ao que eu copiei no meu caderno, e ele havia funcionado no mesmo navegador em outro PC.
Bom pelo erro, geralmente é porque o que está sendo passado no foreach() não é um array, então:
produtos não é um array
faz um print em $produtos para ver
Coloquei :
foreach($produtos as $produto)
{
print $produtos;
}
e continua aparecendo os mesmo erros
1 curtida
No caso comenta o foreach e faz isso aqui:
$produtos = $_POST['produto'];
echo "<pre>"; print_r($produtos);
//coloca isso se caso nao comentou o foreach
die();
e me diz o que aparece
É, após preencher os inputs apareceu isso:
Array
(
[0] => 8
[1] => 797
[2] => 9
[3] => 97
[4] => 968
[5] => 764
[6] => 94
[7] => 54
[8] => 7
[9] => 87624
[10] => 4453
[11] => 774
[12] => 41
[13] => 687
[14] => 1
[15] => 2
[16] => 1
[17] => 31
[18] => 31
[19] => 222
)
Sendo que ele deveria mostrar apenas os números, usando o foreach
1 curtida
No trecho do foreach coloque um if antes…
...
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$produtos = $_POST['produto'];
foreach($produtos as $produto){
echo $produto."<br>";
}
}
...
Assim ele só vai exibir o que o usuário marcou depois do submit…
2 curtidas
No caso que estamos fazendo é debugando o código na mão para ver o retorno.
Agora fiquei sem entender, pois $produtos realmente é um array
Outra coisa, retire a linha do echo ‘<form…’ de dentro do for e coloque-a antes, assim você não cria um form por input…
Grande LostSoldier o cara manja kkkk
1 curtida
Manjo nada, só conheço a linguagem a uns 8 anos…
1 curtida