Ir para conteúdo

POWERED BY:

Arquivado

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

nknk

Problemas com carrinho

Recommended Posts

Estou com problemas com este carrinho, o código encontrei pela net, ele apresenta problemas para incluir, excluir.

 

<?
/* ///////////////////////////////////////////////////////////
Logo abaixo criaremos as funções práticas de funcionamento
do carrinho, que são as funções de inserir, excluir, e apagar
o carrinho de compras. Mas antes disso temos que criar a Classe.
*/ ///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
// Inicia a função criando a classe "carrinho_compra"
//////////////////////////////////////////////////////////////
class carrinho_compra{
	function inserir_item($code,$quantidade){
		$this->codigo = $code;
		$this->qtde = $quantidade;			
		$this->dados = $_SESSION['carrinho_compras'];			
		if($this->dados != ""){
			$this->chave = array_keys($this->dados);
			$this->soff  = sizeof($this->chave);	
			for($i = 0; $i < $this->soff; $i++){
				if($this->dados[$i]['codigo'] == $this->codigo){
					$this->dados[$i]['qtde'] += $this->qtde;						
					$tem = 1;
					break;
				}
			}
			if($tem != 1){
				$this->dados[$this->soff]['codigo'] = $this->codigo;
				$this->dados[$this->soff]['qtde'] = $this->qtde;
			}
			$_SESSION['carrinho_compras'] = NULL;
			$_SESSION['carrinho_compras'] = $this->dados;
		}else{
			$this->dados[0]['codigo'] = $this->codigo;
			$this->dados[0]['qtde'] = $this->qtde;
			$_SESSION['carrinho_compras'] = NULL;
			$_SESSION['carrinho_compras'] = $this->dados;
		}
	}
	function excluir_item($code){
		$this->codigo = $code;
		$this->dados  = $_SESSION['carrinho_compras'];			
		if($this->dados != ""){
			$this->chave = array_keys($this->dados);
			$this->soff  = sizeof($this->chave);	
			for($i = 0; $i < $this->soff; $i++){
				if($this->dados[$i]['codigo'] == $this->codigo){
					unset($this->dados[$i]);
					$this->dados1 = array_values($this->dados);
					$_SESSION['carrinho_compras'] = NULL;
					$_SESSION['carrinho_compras'] = $this->dados1;
					break;
				}
			}
		}
	}
	function exibir_dados(){
		$this->dados  = $_SESSION['carrinho_compras'];
		if ($this->dados != ""){
			$this->dados = array_reverse($this->dados);
			$this->chave = array_keys($this->dados);
			$this->soff  = sizeof($this->chave);	
			for ($i = 0; $i < $this->soff; $i++){				
				$codigo = $this->dados[$i]['codigo'];
				$quant = $this->dados[$i]['qtde'];				
				print $codigo." - ".$quant."<br />";
			}				
		}else{
			echo "Carrinho Vazio";
		}
	}
}	
?>

<?
session_start();
require_once("carrinho.php");				
	
	$carrinho = new carrinho_compra;	
	$carrinho->dados = $_SESSION['carrinho_compras'];
	$carrinho->chave = array_keys($carrinho->dados);
	$carrinho->soff = sizeof($carrinho->chave);

	$idproduto = $_GET['idproduto'];
	$quantidade = $_GET['quantidade'];
	$acao = $_GET['acao'];

	if($acao == 'ADD'){
		$carrinho->inserir_item($idproduto,$quantidade);
	}
	if($acao == 'DEL'){	
		$carrinho->excluir_item($idproduto);
	}
	if($acao == 'UPD' and $quantidade < 0){
		$carrinho->excluir_item($idproduto);
	}
	if($acao == 'UPD' and $quantidade > 0){
		$carrinho->inserir_item($idproduto,$quantidade);
	}
	if($acao == 'LIMPA'){
		for($i = 0; $i < $carrinho->soff; $i++){
			$idproduto = $carrinho->dados[$i]['codigo'];
			$carrinho->excluir_item($idproduto);
		}
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pronto...

 

porque que tu não mostra os erros que aparece ? ou tentar explicar melhor o que se ocorre, desta maneira fica complicado, pega o código na net, tem problemas e posta aqui pra alguém advinhar o erro e corrijir, complica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu disse o problema que acontecia, que estava na parte de exclusão e inclusão. Eu dei uma olhada nos códigos de carrinho que tem pela net, esse é o mais simples que encontrei, ele lista, inclui e exclui, mas n entendo muito de orientação a objeto.

 

Ao excluir um produto, ele exclui normalmente mas depois qdo pede para listar ele volta novamente o produto, o que imaginei foi q ele não ta excluindo da SESSION corretamente.

 

$_SESSION['carrinho_compras'] = NULL;

o que significa esta linha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E quando você inclui?

Aparece o que?

 

Já olhou a sua estrutura condicional? Viu se tudo o que é requerido está sendo passado corretamente? Tipo campos, parâmetros, etc?

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa linha provavelmente deve ser pra iniciar o carrinho sem nenhum produto né?

A sessão inicia com ele sem nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estuda por aqui que tu vai entender o que cada código faz:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://videotutoriais.net/videos/carrinho_...ho_compras.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver o problema, acho que estava na parte de variaveis e session. Acabei descobrindo que este código está disponivel aqui no Laboratório de script, e ele é muito simples, ideal para quem quer iniciar uma aplicação deste tipo. O video é interessante, mas este tipo de aplicação serviria para usuários cadastrados, utilizar sql para usuários visitantes sendo que eles podem desistir da compra é gasto.

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.