Ir para conteúdo

Arquivado

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

_Leandro_

array

Recommended Posts

<?
session_start();

$id_pro = $id_prod;
$id_pro = $_POST['checkbox'];

for ($i=0; $i<count($id_pro); $i++) {
//echo "Livro ID: ".$id_pro[$i]." | <br />";  Tanto o ID como o Valor chegam corretamente..... e se repetem....
$pro = $id_pro[$i];
$produto[] = $pro; //pega o ID do produto

$num = $_POST['quant_'.$id_pro[$i]]; //aqui vai pegar a quantidade do formulário.
$quant[] = $num; //pega a quantidade do produto

//echo "Quantidade: ".$num."
//Produto: ".$produto."<br />".$pro;
}

print_r ($quant);
print_r ($produto);

exit;

$_SESSION['produto'] = $produto;
$_SESSION['quant'] = $quant;

header ("Location: orcamento_confirma.php");
exit;
?>

 

Tenho este arquivo para gravar dados em uma array, são dois valores o ID e uma quantidade, o problema é que sempre que insiro dados o ID se repete e o produto fica duplicado, enquanto que a quantidade não, como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que assim: o $id_prod pega o ID e o $_POST['checkbox'] é para pegar só as id's que estiverem com este checkbox marcado.

o código é assim:

 

<?PHP if (count($id_prod) > 0){ ?> Produtos já inclusos, definir a quantidade:<br />
					<form action='sessao2.php' method='post' onsubmit="return checa_formulario(this)">
						<?PHP if (count($id_prod) == 0){ echo "<div><br />Nenhum produto encontrado.</div>";
							}
							else { echo "<table width='540'>";
								for ($i=0; $i<count($id_prod);$i++){ //aqui já vai fazer a consulta até o último produto da sessão;
									$busca_c = mysql_query("select * from produtos WHERE id_produtos = ".$id_prod[$i]); //procura na tabela comparando com o ID que vem da seção;
									$nome	= rawurldecode(mysql_result($busca_c,0,"produto"));					 
										if (($c+1) % 2 == 0) {
											$cor = 'bgcolor=\'#FAFAF0\'';
										} else { 
											$cor = 'bgcolor=\'#FFFFFF\'';
										}
									echo
									"<script language='JAVASCRIPT'>
									function checa_formulario(form){
										var invalid; invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
										if (form.quant_$id_prod[$i].value == ''){
										alert('Campo QUANTIDADE deve ser preenchido!');
										form.quant_$id_prod[$i].focus(); return (false);
										}
									}
									</script>
										<tr print $cor><td align='center' width='80' height='50'><img src='admin/produtos/$id_prod[$i].jpg' border='0' height='50' /></td>
										<td> <input name='checkbox[]' checked='checked' type='checkbox' value='$id_prod[$i]'> $nome  </td>
										<td width='140'> Quant: <input id='quant_' name='quant_$id_prod[$i]' type='text' value='$quantidade[$i]' size='3' maxlength='5'> Un.<br /></td>
										<td width='70' align='center'> <a href='?prodRemove=".$id_prod[$i]."'>Excluir</a> </td></tr>";
										$c++;
								} echo "</table>";
							} ?> <br /><br /><input id='submit' type='submit' value='Efetuar pedido de orçamento'>
					</form>

ele já traz a sessão $id_prod só que antes de salvar de novo no arquivo que está dando erro eu uso um

<?
session_start();
session_destroy();// aqui eu destruo a primeira seção e crio uma nova com os dois dados - id_produto e quantidade -

session_start();
$id_pro = $id_prod;
$id_pro = $_POST['checkbox'];

	for ($i=0; $i<count($id_pro); $i++) {
		//$pro = $id_pro[$i];
		$produto[] = $id_pro[$i]; //pega o ID do produto ..... conforme código postado anteriormente......

 

espero ter conseguido esclarecer melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa fera, só pra constar, consegui solucionar usando o comando in_array pra zerar a duplicação e depois o array_splice para limpar as arrays vazias, mas valeu mesmo pela atenção, pena que agora estou com problema em outro array...

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae Leandro e Beraldo, tudo bem?

Leandro você usou o método de sigla POG.

Programação Orientada a Ganbiarra.

 

Tem que ver o real problema, com isso você apenas contornou a situação. Na minha opinião claro.

O que tem de legal na programação é que tudo pode estar certo... porém tem maneiras mais indicadas de solucionar um problema.

 

Abraços,

Léo

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.