Ajuda com meu carrinho de compras PHP

15/06/2019

0

PHP

Preciso de ajuda para alterar o metodo de alterar a quantidade do produto no meu carrinho, meus conhecimentos sobre programação web são bem basicos, preciso finalizar esse projeto para entregar na faculdade, eu implementei um metodo simples de alterar a quantidade, mas acontece um reload cada vez que eu adiciono ou removo mais '1' da quantidade, gostaria que alguem implementasse um metodo em que isso não aconteça no meu codigo, abaixo esta o codigo do meu carrinho:

 <?php
    session_start();

    if (!isset( $_SESSION['itens'] ) ):
        $_SESSION['itens'] = array();
    endif;
    
    if ( isset( $_GET['add'] ) && $_GET['add'] == "carrinho" ):
        $idProduto  = $_GET['id'];
        if (!isset ($_SESSION['itens'][$idProduto])):
            $_SESSION['itens'][$idProduto] = 1;
        else:
            $_SESSION['itens'][$idProduto] +=1;
        endif;
    endif;
    
    if ( count( $_SESSION['itens'] ) == 0 ):
        echo ' <h1>Carrinho vazio</h1>';
    else:
        $_SESSION['dados'] =array();
        $conexao = new PDO ('mysql:host=localhost;dbname=meusprodutos',"root", "");
?>
<table >
    <thead>
        <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Produto </font></th>
        <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Preço </font></th>
        <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Quantidade </font></th>
        <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Subtotal</font></th>
        <th><div align="center" style="font-size:14px; font-family: arial"> <font color="black">Opções</font></th>

    </thead>
    <tbody>
<?php 
        $totalcarrinho = 0;
        foreach ( $_SESSION['itens'] as $idProduto => $quantidade ):            
            $select = $conexao->prepare("SELECT * FROM produtos WHERE id=?");
            $select ->bindParam(1, $idProduto);
            $select ->execute();
            $produtos = $select->fetchAll();
            $total = $quantidade * $produtos[0]["preco"];
            if(count( $_SESSION['itens'] ) == 0 ):
                $totalcarrinho = 0;
            else:
            
                $tempcarrinho = $totalcarrinho;
                $totalcarrinho =  $tempcarrinho + $total;
            
            endif;

?>
    <tr>
        <td><div align="center" style="font-size:20px; font-family: verdana"> <font color="white"><?=$produtos[0]["nome"]?></font> </div></td>
        <td><div align="center" style="font-size:15px; font-family: verdana"> <font color="white"><?=number_format( $produtos[0]["preco"], 2, ", ", "." )?></font></div></td>
        <td><div align="center"style="font-size:15px; font-family: verdana"> <font color="white" ><a href="remover.php?remover=carrinho&id=<?=$idProduto?>">◄</a> <?=$quantidade?><a href="carrinho.php?add=carrinho&id=<?=$idProduto?>">►</a></font> </div></td>
        <td><div align="center" style="font-size:15px; font-family: verdana"> <font color="white"><?=number_format( $total, 2, ",", "." )?></font></div></td>
       <td>
  <a href="remover2.php?remover=carrinho&id=<?=$idProduto?>">Remover</a>
  
</td>
    </tr>

<?php
    array_push($_SESSION['dados'],
        array ('id_produto' => $produtos[0]["nome"],
                'quantidade' => $quantidade,
                'preco' => $produtos[0]["preco"],
                'total' => $total

    )
    );
    
        endforeach;
    

?>
    </tbody>
</table>
<table>
    <td class="td1"><div align='center' style='font-size:25px;font-family:Verdana'><font color="white">Total <?=number_format( $totalcarrinho, 2, ",", "." )?></font></div></td> 
    </table>
<?php
echo '<a href="finalizar.php"><button class="button2" type="submit">Finalizar pedido</button></a>'; 
    
    endif;
    
?>
João Pinheiro

João Pinheiro

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar