Rogieri 0 Denunciar post Postado Abril 24, 2011 Boa noite, estou com um pequeno problema, eu tenho o carrinho de compras funcionando certinho ele ate envia todos os produtos para o pagseguro, o problema esta na quantidade dos intens que estão no carrinho de compras o script esta enviando apenas a ultima quantidade para todos os itens no pagseguro, se alguem puder me ajudar obrigado e até mais. <?php // Incluindo o arquivo da biblioteca include('pgs.php'); // Incluindo conexão ao banco de dados e controle de carrinho de compras include('funcoes.php'); // Criando um novo carrinho $pgs=new pgs(array( 'email_cobranca'=>'scott_publicidade@hotmail.com', )); $area = isset($_GET['area']) ? $_GET['area'] : NULL; $acao = isset($_GET['acao']) ? $_GET['acao'] : NULL; $objCar = new Carrinho; if ($area == "carrinho") { if ($acao == "adicionar") { $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL; $objCar->AdicionarProduto ($id); } if ($acao == "remover") { $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL; $objCar->RemoverProduto ($id); } if ($acao == "alt_qtde") { $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL; $n_qtde = isset ($_POST['qtde_'.$id]) ? (int)$_POST['qtde_'.$id] : 1; $objCar->AlterarQuantidade($id, $n_qtde); } echo " <h2>Carrinho de Compras</h2> <table width=\"700\" cellpadding=\"2\" cellspacing=\"0\"> <tr> <td width=\"300\" style=\"text-align:center\">Nome</td> <td width=\"120\" style=\"text-align:center\">Preço<br />Unitário</td> <td width=\"100\" style=\"text-align:center\">Qunatidade</td> <td width=\"120\" style=\"text-align:center\">Subtotal deste<br />Produto</td> <td width=\"60\" style=\"text-align:center;\">Excluir<br />Produto</td> </tr> "; $carrinho = isset ($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array(); if (count ($carrinho) == 0) { echo " <tr> <td colspan=\"5\" style=\"text-align:center\"><strong><em> Não há produtos em seu carrinho de compas.</em></strong> </td> </tr> </table> <p><a href=\"?area=produtos\">Ver lista de produtos</a></p> "; } else { $arrID = array(); for ($a = 0; $a < count($carrinho); $a++) { $arrID[] = $carrinho[$a]['id']; //echo $arrID . "<br />"; ?> <?php $id = $carrinho[$a]['id']; $nome = htmlentities ($carrinho[$a]['nome']); $preco = number_format ($carrinho[$a]['preco'], 2, ",", ""); $desc = htmlentities ($carrinho[$a]['descricao']); $qtde = $carrinho[$a]['qtde']; $subtotal = number_format(($carrinho[$a]['preco'] * $qtde), 2, ',', ''); echo " <tr> <td style=\"border-left: dashed 1px black;\" class=\"celulas\">".$nome."</td> <td class=\"celulas\">R$ ".$preco."</td> <td class=\"celulas\"> <form action=\"?area=carrinho&acao=alt_qtde&id=".$carrinho[$a]['id']."\"method=\"post\"> <input type=\"text\" name=\"qtde_".$id."\" value=\"".$qtde."\" style=\"width: 30px;height: 15px;font-size:13px;text-align:center;border:inset 1px black;\" maxlength=\"2\" /><br /> <input type=\"submit\" value=\"Alterar\" style=\"width: 80px;height: 20px;font-size:13px;margin:0;padding:0;cursor:pointer;background:#ccc;border: inset 1px black\" /> </form> </td> <td class=\"celulas\">R$ ". $subtotal . "</td> <td class=\"celulas\"><a href=\"?area=carrinho&acao=remover&id=" .$id. "\" onclick=\"return ConfirmarExclusaoProduto()\">Excluir</a></td> </tr> "; // Busca os produtos do carrinho no banco de dados ?> <?php }// fecha for echo " <tr> <td style=\"text-align:right\"><strong style=\"font-size:18px\">Total:</strong><br />Sem o valor do frete</td> <td style=\"text-align:center\"><strong style=\"font-size:18px\">".$_SESSION['total']."</strong></td> <td colspan=\"2\"> </td> </tr> </table> <p><a href=\"?area=produtos\">Continuar Comprando</a> | <a href=\"?area=finalizar\">Finalizar Pedido</a></p> "; }// fecha else } ?> <?php //include 'funcoes.php'; //$id = $_GET['id']; //$result = $pdo->query("SELECT * FROM produtos WHERE id ='$id'"); //while($reg = $result->fetch(PDO::FETCH_ASSOC)){ //$id = $reg["id"]; //$nome = $reg["nome"]; //$peso = $reg["peso"]; //$valor = $reg["preco"]; //} ?> <?php if(@$arrID){ $produtos=$pdo1->query("SELECT id, nome, preco, peso FROM produtos WHERE id IN (". join(",",$arrID) . ")"); foreach($produtos as $produto){ // Adicionando um produto $pgs->adicionar(array( array( "descricao"=>$produto['nome'], "valor"=>$produto['preco'], "peso"=>$produto['peso'], "quantidade"=> $qtde, "id"=>$produto['id'] ), )); } } // Mostrando o botão de pagamento $pgs->mostra(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Abril 24, 2011 Poste sempre seu código dentro do bbcode CODE pra ficar melhor de visualizá-lo. Compartilhar este post Link para o post Compartilhar em outros sites
alcaidedigital 57 Denunciar post Postado Abril 26, 2011 Verifique a class Clarrinho Creio que no metodo " AlterarQuantidade " , o id do produto seja obrigatorio. sendo assim no codigo if ($acao == "alt_qtde") { $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL; $n_qtde = isset ($_POST['qtde_'.$id]) ? (int)$_POST['qtde_'.$id] : 1; $objCar->AlterarQuantidade($id, $n_qtde); } deveria ser if ($acao == "alt_qtde" && isset ($_GET['id'])) { $id = (int)$_GET['id']; $n_qtde = isset ($_POST['qtde_'.$id]) ? (int)$_POST['qtde_'.$id] : 1; $objCar->AlterarQuantidade($id, $n_qtde); } Verifique tambem se no método "AlterarQuantidade" está fazendo a alteração correta. Compartilhar este post Link para o post Compartilhar em outros sites