111aaa
Outubro 6, 2019, 5:29pm
#1
Estou tentando fazer esse exercício, mas não sei se o script está correto. O problema é que no final ele fica em um loop grande Alguém ajuda aê?
Escreva um programa que receba dois números, sendo que o primeiro é o início da lista e o segundo o final. Os dados deverão ser apresentados numa lista HTML Use While ";
<!DOCTYPE html>
<html>
<head>
<title>Exercício</title>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form metod="get" name="form">
<p>
<label for="N1">Primeiro Número</label>
<input type="number" id="N1" name="N1" required />
</p>
<p>
<label for="N2">Segundo Número</label>
<input type="number" id="N2" name="N2" required />
</p>
<button type="submit">Verificar</button>
</form>
<?php
$i = 1;
while ( $i <= 2 ) {
$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];
echo "<li>", $valor1, "</li>";
echo "<li>", $valor2, "</li>";
}
?>
</body>
</html>
Onde está a expressão que incrementa a variável $i
no while
para que ele, em algum momento valha 100?
Tente assim:
<?php
$i = 1;
while ( $i <= 100 ) {
$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];
echo "<li>";
echo $valor1;
echo "</li>";
echo "<li>";
echo $valor2;
echo "</li>";
$i++;
}
?>
1 curtida
111aaa
Outubro 6, 2019, 6:09pm
#4
Existe um pequeno problema com seu script e o meu script ambos colocam < li > antes do input, ou seja antes que eu envie os números para a entrada, o programa cria uma lista Quero criar a lista somente quando os números tiverem na entrada, tem como fazer ?
Mes script? Eu copiei o que tu fez e adicionei $i++
. Em todo caso, use a função isset()
, conforme a documentação:
A função isset() retornará FALSE
se for usada em uma variável com o valor NULL
. Lembrando que no PHP um byte NULL
( “\0” ) é diferente da constante NULL
.
Fonte: PHP Manual - função isset .
Exemplo:
<?php
$i = 1;
while ( $i <= 100 ) {
$valor1 = NULL;
$valor2 = NULL;
$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];
if(isset($valor1) && isset($valor2)){
echo "<li>";
echo $valor1;
echo "</li>";
echo "<li>";
echo $valor2;
echo "</li>";
$i++;
}
}
?>
1 curtida
111aaa
Outubro 6, 2019, 6:46pm
#6
Não ficou certo, olha esse erro Notice: Undefined index: N1 , PHP Notice: Undefined index: N2 O que pode ter ocorrido?
111aaa
Outubro 6, 2019, 7:09pm
#7
Posso fazer como ? porém há um erro
<?php
$i = 1;
$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];
while ($valor1 <= 1 && $valor2 <= 1){
echo "<li>".$valor1 "</li>";
echo "<li>".$valor2 "</li>";
$i++;
}
?>
111aaa
Outubro 6, 2019, 7:13pm
#8
Resolvido
<?php
$i = 1;
$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];
while ($valor1 <= 1 && $valor2 <= 1){
echo "<li>" , $valor1, "</li>";
echo "<li>" , $valor2, "</li>";
$i++;
}
?>
111aaa
Outubro 6, 2019, 7:18pm
#9
Corrigido, não sei pq coloquei o valor de 100
111aaa
Outubro 6, 2019, 7:19pm
#10
Tem como simplificar o GET? para $valores = $_GET[‘N1’], $_GET[‘N2’]; ?
Exemplo:
<html>
<head>
<title>Exercício</title>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form method="get" name="form">
<p>
<label for="N1">Primeiro Número</label>
<input type="number" id="N1" name="N1" required />
</p>
<p>
<label for="N2">Segundo Número</label>
<input type="number" id="N2" name="N2" required />
</p>
<button type="submit">Verificar</button>
</form>
<?php
$i = 1;
while ($i <= 100){
if(isset($_GET['N1']) && isset($_GET['N2'])){
$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];
echo "<li>";
echo $valor1;
echo "</li>";
echo "<li>";
echo $valor2;
echo "</li>";
}
$i++;
}
?>
</body>
</html>
1 curtida