Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zenkphp

While, for, foreach

Recommended Posts

Opa, tudo bem?

 

Por necessidade, estou aprendendo a programar em php e usar a linguagem html... e estou tentando praticar e estou com problema de logica, eu não possuo uma logica apurada, vou explanar o que estou tentando fazer e o que já fiz até agora...

 

Solicitar ao usuário a quantidade de itens que estão sendo comprados pelo cliente (pagina 1), depois de clicar em continuar, o sistema tem que apresentar um formulario com os campos para insercao dos itens (selecionando o produto e informar quantidade de produtos)(pagina 2), apos finalizar a compra, o sistema apresenta uma nota em formato tabula contendo os itens, com valor unitario de cada item, a quantidade de itens comprados, o valor total do item e o valor total da compra(tela 3)...

 

Eu já fiz a pagina 1 e a página 2, mas a 3 nao sei nem direito onde começar... mas não gostaria da resposta, e sim me dar uma dica ou me falar uma logica para eu aplicar, essa parte de logica é complicado para eu entender!

 

Segue o que eu já fiz:

 

 

Index.html

<!DOCTYPE html>
<html>
<head><title>zenk</title></head>
<body>
	<center>
	<h3>Informe a quantidade de produtos</h3>
			<form action="produto.php" method="post">
				<p>
					<input name="qntd" type="text" required>
				</p>
				<p>
					<input type="submit" name="submit" value="Continuar">
				</p>
			</form>
	</center>		
</body>
</html>

produto.php

<!DOCTYPE html>
<html>
<head><title>zenk 2</title></head>
    <body>
	<center>
	<?php
	
	$qntd = $_POST["qntd"];	


	echo "Informe os produtos e quantidade<br>";
	echo "<br>";
	
	for ($x = 1; $x <= $qntd; $x++){
		echo "Produto $x: ";
		echo "<select name='produto'>
				<option>Escolha o produto</option>
				<option value='banana'>Banana</option>
				<option value='morango'>Morango</option>
				<option value='melancia'>Melancia</option>
				<option value='granola'>Granola</option>
			</select> "; 
		echo "<label>Quantidade: </label>";
		echo "<input type='text' size='3' name='totalprodutos' required><br>";
	}
	?>
	<button type="submit" formaction="finalizacao.php">Continuar</button>
	</center>
	
    </body>
</html>

finalizacao.php // o que eu fiz até agora

<!DOCTYPE html>
<html>
<head><title>zenk 3</title></head>
<body>
	<center>
	<?php
	
	$produto = array (
		'banana' => '1,20',
		'morango' => '4,60',
		'melancia' => '2,50',
		'granola' => '3,70',
		);
		
	$totalprodutos = $_POST["totalprodutos"];	


	echo "Finalização da compra<br>";
	echo "<br>";
	
		
	?>
	</center>
	
</body>
</html>

KnMzUnY.pngKnMzUnY.pngKnMzUnY.png

Compartilhar este post


Link para o post
Compartilhar em outros sites
Olá!


Na pagina2 você pode trabalhar com formulário também. E deixa os campos como array (adicionando "[]" no final do nome, ex: "produto[]"), então na pagina3 você recebe os dados e faz os tratamentos/cálculos necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, vamos aos elementos disponíveis:

 

while, for e foreach (ainda existe o do-while) são estruturas de controle.

 

While e for são loops (repetições). Que podem ser utilizadas para iterar sobre um array ou Iterator.

O while é a versão mais "liberal" dos loops, necessita apenas de um parâmetro e manterá o loop enquanto o parâmetro for verdadeiro (true).

 

For a implementação do caso mais comum do while:

 

- 1º parâmetro: Será executado/verificado apenas uma vez antes de iniciar o loop: valor inicial;

- 2º parâmetro: Será executado antes de cada loop, é condicionante do loop. Ou seja, será o que manterá o loop ativo: A condicional para manter o loop, validação;

- 3º parâmetro: Será executado após cada loop, não é condicionante: Incrementação do próximo índice.

 

Entretanto, só o segundo parâmetro é obrigatório, podendo o código abaixo ser executado:

for(; true ;) {
   break;
}
Foreach é o açucar sintático (syntactic sugar) específico para iterar. Sem um array ou iterator, não é possível realizar loops.

 

O foreach foi criado para o desenvolvedor não se preocupar com o tipo de array utilizado (indexado ou associado), o código abaixo:

$array = [
    0 => "a",
    1 => "b",
    6 => "c",
    7 => "d"
];

foreach($array as $key => $row) {
    printf('[%s] => %s' , $key , $row);
}
É a simplificação do código:

reset($array);
while (list($key , $value) = each($array)) {
    printf('[%s] => %s' , $key , $row);
}
Ou:

for (reset($array) ; list($key , $value) = each($array) ; ) {
    printf('[%s] => %s' , $key , $row);
}
Agora, sobre a forma que você pode utilizar para enviar os elementos de uma página a outra (basicamente a versão completa do post #2):

http://forum.imasters.com.br/topic/462549-resolvidoretornar-array-de-inputs-com-mesmo-nome/

 

Com formulários PHP, você provavelmente utilizará somente o foreach. É muito raro necessitar de outra forma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.