Ir para conteúdo

Arquivado

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

joaov369

Alterar quantidade no carrinho de compras

Recommended Posts

Então, eu consigo alterar a quantidade do meu produto no carrinho atravez do php, mas da um reload na pagina, e dessa forma fica inviavel, eu gostaria de alterar o valor atravez de um input ou algo assim, pra que eu pudesse alterar a quantidade sem que ocorresse o reload na pagina, soube que isso é feito atravez do javascript, e eu não sei nada dessa linguagem, ainda tenho dificuldade até no PHP, se alguem puder me ajudar eu agradeço de verdade, aqui tá o código 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>Nome</th>
        <th>Preço</th>
        <th>Quantidade</th>
        <th>Subtotal</th>
        <th>Opções</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="black"><?=$produtos[0]["nome"]?></font> </div></td>
        <td><?=number_format( $produtos[0]["preco"], 2, ", ", "." )?></td>
        <td><div align="center"><a href="remover.php?remover=carrinho&id=<?=$idProduto?>">◄</a> <?=$quantidade?><a href="carrinho.php?add=carrinho&id=<?=$idProduto?>">►</a> </div></td>
        <td><?=number_format( $total, 2, ",", "." )?></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><div align='center' style='font-size:25px;font-family:Verdana'>Total <?=number_format( $totalcarrinho, 2, ",", "." )?></div></td> 
    </table>
<?php
echo '<a href="finalizar.php"><button class="button2" type="submit">Finalizar pedido</button></a>';
    
    endif;
    
?>

>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@joaov369 Segue novo exemplo:

 

 

CÓDIGO [index.php]

<?php
session_start ();
# session_destroy ();

if ( ! isset ( $_SESSION [ 'itens' ] ) ) {
	$_SESSION [ 'itens' ] = array (
		# CÒDIGO => QUANTIDADE
		12 => 1,
		25 => 120,
		1 => 2
	);
}
?>

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8" />

		<title> EXAMPLE </title>

		<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
	</head>

	<body>
		<form id="alteraCarrinho" action="javascript:void(0)" method="post">
			<table border="1" style="text-align: center">
				<thead>
					<th><b>ID PRODUTO</b></th>
					<th>QUANTIDADE</th>
				</thead>

				<tbody>
				<?php foreach ( $_SESSION [ 'itens' ] as $key => $v ) : ?>
					<tr>
						<td><?php echo $key ?></td>
						<td>
							<input class="c_keys" type="hidden" name="id[]" value="<?php echo $key ?>" />
							<input class="c_values" type="number" name="iten[]" value="<?php echo $v ?>" style="text-align: center" />
						</td>
					</tr>
				<?php endforeach ?>
				</tbody>
			</table>

			<input type="submit" value="Alterar" />
		</form>

		<!-- AJAX -->
		<script type="text/javascript">
		$ ( function ()
		{
			/**
			 * VERIFICA SE HOUVE SUBMIT NO FORM
			*/
			$ ( '#alteraCarrinho' ).submit ( function ()
			{
				/**
				 * PEGA OS ELEMENTOS DOS ARRAYs
				*/
				var c_keys = $ ( '.c_keys' ).serialize ();
				var c_values = $ ( '.c_values' ).serialize ();

				/**
				 * ATUALIZA VIA AJAX
				*/
				$.ajax ({
					url: 'altera.php',
					type: 'post',
					data: {
						'c_keys': c_keys,
						'c_values': c_values
					}
				})
				.done ( function ( obj )
				{
					alert ( obj );
				})
				.fail ( function ( jqXHR, textStatus, msg )
				{
					alert ( msg );
				});
			});
		});
		</script>
	</body>
</html>

 

CÓDIGO [altera.php]

<?php
session_start ();

if ( $_POST ) {
	/**
	 * ARMAZENA VALORES DO POST
	*/
	$keys = array ();
	$values = array ();

	/**
	 * CONVERT EM ARRAY
	*/
	$convert_key = parse_str ( $_POST [ 'c_keys' ], $keys );
	$convert_value = parse_str ( $_POST [ 'c_values' ], $values );

	/**
	 * ATUALIZA NOVO CARRINHO
	*/
	for ( $i = 0; $i < count ( $keys [ 'id' ] ); $i++ ) {
		$_SESSION [ 'itens' ] [ $keys [ 'id' ] [ $i ] ] = $values [ 'iten' ] [ $i ];
	}

	/**
	 * ENVIA NOVO CARRINHO PARA O ALERT
	 * NA FUNÇÂO DONE ()
	*/
	var_dump (
		$_SESSION [ 'itens' ]
	);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida.
       
      Estou escrevendo um Sistema que tem vários Módulos.
       
      O módulo principal tem:
      Estoque | Compras | Expedição | Vendas

      Minha dúvida:
      como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar,
      eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ?


      Grato,
       
      Cesar
    • Por douglas79
      Bom dia,

      Há alguns dias que venho instalar o apache, o php, mysql e o phpmyadmin manualmente e sem obter sucesso. Até consegui rodar o php, porém, quando vou baixar a úitima versão do MYSQL, não tem todos os pacotes nele instalados, inclusive no completo, só encontro o Router.
      Alguém pode me dizer o porquê que isso está ocorrendo?
      Desde já agradeço a ajuda de vocês, que será bem vinda!
      No aguardo!

      Uso a versão 8.3.9 do PHP
      Meu SO é o Windows 10 32 bits
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me perdoa em postar mais uma dúvida minha.

      Através de ajuda e orientação dos membros do Grupo, tenho conseguido resolver muitos problemas que tenho encontrado.
       
      Gostaria de saber dos amigos do grupo, se tem algum vídeo aula, orientando a Instalação das Biblioteca para Emissão de Nota Fiscal Eletrônica.
       
      Tenho feito várias busca e tenho encontrado a maioria das vezes tudo em LARAVEL.

      Sei que para instalar as Biblioteca, precisa do Composer, até aqui tudo bem.

      Minha dúvida: 
      após fazer o download da  sped-nfe  e  sped-da, essas biblioteca devem ser gravada em qual pasta ?  ----   na C:\  ou dentro da pasta do Sistema ?
      quando dou o comando: COMPOSER INSTALL esse comando já instala todas as bibliotecas, ou 1 por 1 ?

      Grato,
       
      Cesar
       
×

Informação importante

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