Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal. Gostaria de uma ajuda de vocês.
Estou armazenando os dados dos itens dentro de sessions nomeadas de produtos e qtd.
E cada item é separado do outro com um ";".
Mas estou tendo problemas para atualizar dinamicamente a qtd de cada item. Como eu poderia fazer isso com php?
O jeito que fiz no momento é assim, mas nao funciona corretamente pois pega o ultimo item da table.
if ((count($qtd)) > 0){
for($i = 0; $i <= (count($qtd) -1); $i++){
// ZEBRAR A TABELA
if (($i % 2) == 0){
echo "<tr style='background-color: silver'>";
}
else{
echo "<tr style='background-color: white'>";
}
echo "<td><input type='hidden' name='item' value='$i'> $i</td>";
echo "<td style='text-align:center'>"?><a href="confirmaitem.php?ad=1&removeitem=<?=$i?>" target="_self" title="Excluir"><img src="img/logo_excluir.png"></a> <? echo "</td>";
unset($descricaoprod,$valorcheio,$valor_site);
$sql = "select descricao as descricaoprod, vl_venda as valorcheio, vl_site as valor_site from produtos where idprodutos=" . $produtos[$i];
$db->select($sql);
echo "<td> $descricaoprod[0]</td>";
echo "<td> <input type='text' size='3' name='qtd$i' id='qtd$i' value=\"" . $qtd[$i] . "\"> "; ?><input type="image" src="img/ok.png" name="enviar" style="width: 20px; height: 20px"/> <? echo "</td>";
echo "<td>". number_format($valor_site[0], 2, ',','') . "</td>";
echo "<td> ". number_format($qtd[$i] * $valor_site[0], 2, ',',' ')."</td>";
$total = $total + ($qtd[$i] * $valor_site[0]);
$total_itens = $total_itens + $qtd[$i];
// FECHA LINHA DO PRODUTO
echo "</tr>";
}
}
Neste site funciona do jeito que eu quero. Ja consegui fazer a deleção dos itens. Mas estou enrascado na alteração da qtd.
www.mesatenista.net/loja
Você pode me dar uma força em como fazer esta operação?
Oque preciso mudar no meu codigo, e oque preciso implementar ?
na teoria é assim você ia adicionar um comando Javascript ao seu botão, exemplo:
<a href="javascript:contar()">Comprar</a>
<script type="text/javascript">
function contar(){
$.post(
'ajax.php' //crie uma pagina chamada ajax.php,
{act: tirarItem}, //esse act é o nome do post e o tirarItem é o nome do valor, exemplo $_POST['act'] vai ser igual a "tirarItem"
function(data){
//o data é o que retorna que no seu caso o que vai retornar é um número novo ai vocÊ manda substituir no html
$('#qtd').html(data);
}
);
}
</script>
a sua página ajax ficaria assim
if(isset($_POST['act'])){
switch($_POST['act']){
case 'tirarItem':
$sql = "UPDATE produtos SET qtd-1";
$sql2 = "SELECT qtd FROM produtos";
// o que você der echo vai retornar como o data lá no seu javascript
break;
}
}
Obs: eu trabalho com jquery então você precisa por esse link no header da sua página
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
Fala colega. O problema é que até o presente momento da operação, nao existe nada gravado no banco de dados.
Esta tudo armazenado em sessions.
Pois o usuario nao precisa se cadastrar para navegar no site e fazer uma simulação de compra, entende?
Precisava fazer tipo assim
pegar essa string da session
qtd1;qtd2;qtd3
encontrar o item que foi alterado e mudar o seu conteudo pra ficar assim
qtd1
qtd2nova
qtd3
e depois juntar tudo de novo emuma session
mesmo exemplo só que no ajax ficaria o seguinte.
if(isset($_POST['act'])){
switch($_POST['act']){
case 'tirarItem':
$qtd = $_SESSION['qtd'];
$_SESSION['qtd'] = $qtd -1;
echo $_SESSION['qtd'];
break;
}
}
como o cliente pode comprar mais de 1 item você terá que mandar no seu javascript a quantidade e substituir no -1
trabalhe com ajax.
pode ajudar
http://www.w3schools.com/php/php_ajax_database.asp