Em cada linha que exibe os produtos, tem lá um input para que o usuario possa digitar a quantidade daquele produto que ele quer.
Esse form paginado, pemite ao usuario, navegar entre as paginas e depois, clikar no botão submit e enviar os dados dos produtos que tiveram suas quantidades alteradas do padrão 0 para qualquer valor.
O problema é que, estando na primeira pagina e o usuario altera o produto 1, por exemplo de 0 para 5 unidades, dai ele troca de pagina e altera naquela a quantidade de um outro produto. Quando o usuario volta na pagina 1, ele perde quantidade que ele digitou no produto que ele escolheu na pagina 1.
Como faço para guardar isso?
Tentei com sesões mas não tive sorte.
<?
if ($acao== "mostra_produtos"){
$sql = mysql_query("
select
pl.id_lista,
p.foto,
pl.id_produto,
p.nome,
f.nome,
f.razaosocial,
g.nome,
p.quantidadecaixa,
p.preço
from
produtos_lista pl
inner join produtos p on pl.id_produto = p.id
inner join fornecedores f on f.id = p.fornecedor
inner join grupos g on p.grupo = g.id_grupo
where pl.data_fim >= CURRENT_DATE
order by pl.id_lista desc, f.nome, f.razaosocial, p.nome
");
$total = mysql_num_rows($sql); // Esta função irá retornar o total de linhas na tabela
$lpp = 2; // Especifique quantos resultados você quer por página
$paginas = ceil($total / $lpp); // Retorna o total de páginas
if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada
$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL
$sql = mysql_query("
select
pl.id_lista,
p.foto,
pl.id_produto,
p.nome,
f.nome,
f.razaosocial,
g.nome,
p.quantidadecaixa,
p.preço
from
produtos_lista pl
inner join produtos p on pl.id_produto = p.id
inner join fornecedores f on f.id = p.fornecedor
inner join grupos g on p.grupo = g.id_grupo
where pl.data_fim >= CURRENT_DATE
order by pl.id_lista desc, f.nome, f.razaosocial, p.nome
LIMIT $inicio, $lpp
");
if ($total == "0")
{
echo "<table border=1 width=800 align=center>
<tr><td colspan=11 align=center><h3>Ainda não há produtos cadastrados</h3></td></tr>
</table>";
}
else{
echo "<table border=1 width=800 align=center>
<tr><td colspan=11 align=center><h3>Produtos</h3></td></tr>
<tr>
<td align=center>Lista</td>
<td align=center>Foto</td>
<td align=center>Produto</td>
<td align=center>Fornecedor</td>
<td align=center>Grupo</td>
<td align=center>Descrição</td>
<td align=center>Qtde. caixa</td>
<td align=center>Preço</td>
<td align=center>Quantidade</td>
<td align=center>Sub Total</td>
<td align=center>Adicionar</td>
</tr>
<form action=\"carrinho.php?op=adicionar\" method=\"post\" name=\"envia_tudo\">
";
$i = 0;
while(list($id_lista, $foto, $id_produto, $nome_produto, $nome_fornece, $razao_fornece, $nome_grupo, $quantidadecaixa, $preço) = mysql_fetch_row($sql)){
$quant{$i}[quant] = $_POST["{$i}[quant]"];
session_register("$quant{$i}[quant]");
echo "<input type=\"hidden\" name=\"{$i}[id_prod]\" id=\"{$i}[id_prod]\" value=\"$id_produto\">
<input type=\"hidden\" name=\"{$i}[quan]\" id=\"{$i}[quan]\" value=\"\">
<input type=\"hidden\" name=\"{$i}[id_lista]\" value=\"$id_lista\">
";
include("../global/funcoes_php/foto_ver.php");
$icone = "<img border=0 src='../img/saiba_mais.png' alt='Saiba Mais'>";
echo "<tr>
<td align=center>$id_lista</td>
<td align=center>$foto2</td>
<td align=let>$nome_produto</td>
<td align=let>$nome_fornece$razao_fornece</td>
<td align=let>$nome_grupo</td>
<td align=\"center\" valign=\"middle\">
<a href=\"?acao=saibamais&id_prod=$id_produto&&id_da_lista=$id_lista\">Saiba Mais</a>
</td>
<td align=center>$quantidadecaixa</td>
<td align=right>R$ $preço</td>
<td align=right>
<input type=text id={$i}[quant] value=\"".$quant{$i}[quant]."\" size=2 style=\"text-align: center;\"
onKeyPress=\"BloqueiaLetras();\"
onchange=\"calculo(this.value, $preço,'{$i}[quant]','{$i}[quan]','{$i}[label_preco]');\" >
</td>
<td align=right>R$ <label id=\"{$i}[label_preco]\">0.00</label></td>
<td align=center valign=\"middle\">
<a href=\"#\" onclick=\"this.href=' carrinho.php?op=adicionar&id_produto=$id_produto&id_da_lista=$id_lista&quantidade='+document.getElementById('{$i}[quant]').value\" >
Enviar </a>
</td>
</tr>";
$i++;
}
if($pagina > 0) {
$menos = $pagina - 1;
$url = "$PHP_SELF?acao=mostra_produtos&pagina=$menos";
echo "<a href=".$url.">Anterior</a>"; // Vai para a página anterior
}
for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas
$url = "$PHP_SELF?acao=mostra_produtos&pagina=$i";
echo " | <a href=".$url.">$i</a>";
}
if($pagina < ($paginas - 1)) {
$mais = $pagina + 1;
$url = "$PHP_SELF?acao=mostra_produtos&pagina=$mais";
echo " | <a href=".$url.">Próxima</a>";
}
echo "
<tr>
<td align=center valign=\"middle\" colspan=11 height=50>
<input type=\"submit\" value=\"Enviar todos os ítens\">
</form>
</td>
</tr> ";
echo "</table>";
}
}
?>
Pergunta
Carlos Rocha
Pessoal.
Tenho uma lista de produtos paginada.
Em cada linha que exibe os produtos, tem lá um input para que o usuario possa digitar a quantidade daquele produto que ele quer.
Esse form paginado, pemite ao usuario, navegar entre as paginas e depois, clikar no botão submit e enviar os dados dos produtos que tiveram suas quantidades alteradas do padrão 0 para qualquer valor.
O problema é que, estando na primeira pagina e o usuario altera o produto 1, por exemplo de 0 para 5 unidades, dai ele troca de pagina e altera naquela a quantidade de um outro produto. Quando o usuario volta na pagina 1, ele perde quantidade que ele digitou no produto que ele escolheu na pagina 1.
Como faço para guardar isso?
Tentei com sesões mas não tive sorte.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.