Jump to content

Aureo Almeida

Members
  • Content count

    46
  • Joined

  • Last visited

Community Reputation

0 Comum

About Aureo Almeida

  1. Aureo Almeida

    Formulário não envia parte de consultas

    Possuo um formulário que está repassando parte dos dados que desejo enviar. Ele busca o resultado de três consultas e duas delas dão opções de seleção para o usuário em input radio. A primeira busca informações de produtos selecionados a partir de um parâmetro recebido via post. Este mesmo parâmetro também estabelece um critério para as outras duas consultas. Todas elas funcionam adequadamente, sem problemas. A questão é que ao enviar o formulário somente os dois parâmetros que estão presentes em inputs hidden são enviados. Os dois inputs radio, que são preenchidos de acordo com determinados critérios, não. Este é o código do formulario: <form action="carrinho.php" method="post"> <?php //Recebe a variavel idproduto da página do produto $sub_id = $_POST['idproduto']; $sql = "SELECT * FROM psd_produtos Where prd_id = '$sub_id'"; $stmt = $conn->prepare($sql); $stmt->execute(); $dados= $stmt->fetchAll(PDO::FETCH_OBJ); foreach ($dados as $detProdutos): $prdid = $detProdutos->prd_id; $nome= $detProdutos->prd_nome; $valor = $detProdutos->prd_valor; $novovalor = number_format($valor, 2, ',', '.'); $quantidade = $detProdutos->prd_estoque; echo" <h2>PREÇO: R$ $novovalor</h2><br/> <input type='hidden' name='id' value='$prdid'> <input type='hidden' name='acao' value='add'> "; endforeach; $sql1 = "SELECT * FROM psd_cores WHERE prd_id = '$sub_id'AND crs_quantidade != '0'"; $stmt1 = $conn->prepare($sql1); $stmt1->execute(); $dados1= $stmt1->fetchAll(PDO::FETCH_OBJ); foreach ($dados1 as $prodCores): if($quantidade!= 0){ echo" <input type='radio' name='cor' id='cor' value='$prodCores->crs_cores' checked='checked'> $prodCores->crs_cores <br> ";} endforeach; $sql2 = "SELECT * FROM psd_sabores WHERE prd_id = '$sub_id'AND sbr_quantidade != '0'"; $stmt2 = $conn->prepare($sql2); $stmt2->execute(); $dados2= $stmt2->fetchAll(PDO::FETCH_OBJ); foreach ($dados2 as $prodSabores): if($quantidade!= 0){ echo" <input type='radio' name='sabor' id='sabor 'value='$prodSabores->sbr_sabor' checked='checked'> $prodSabores->sbr_sabor <br> ";} endforeach; ?> <input type='submit' class='imput-comprar' value='Comprar'> </form> O estranho é que se eu fizer um formulário com uma das consultas isoladamente da demais, os parâmetros são enviados. Exemplo que funciona: <form action="carrinho.php" method="post"> $sql2 = "SELECT * FROM psd_sabores WHERE prd_id = '$sub_id'AND sbr_quantidade != '0'"; $stmt2 = $conn->prepare($sql2); $stmt2->execute(); $dados2= $stmt2->fetchAll(PDO::FETCH_OBJ); foreach ($dados2 as $prodSabores): if($quantidade!= 0){ echo" <input type='radio' name='sabor' id='sabor 'value='$prodSabores->sbr_sabor' checked='checked'> $prodSabores->sbr_sabor <br> ";} endforeach;?> <br><input type='submit' class='imput-comprar' value='Comprar'> </form> O que pode estar impedindo que os valores das duas consultas após a primeira não sejam enviadas em conjunto, somente isoladamente?
  2. Não tenho domínio do uso de Ajax e estou com problema para chamar uma função PHP de um arquivo. Num arquivo chamado atualiza.php possuo uma função para atualizar tabelas de um Banco de Dados com dois insert into, chamada function atualizaPdIt(). Eu desejo que esta função seja chamada para dentro de um arquivo chamado finaliza_compra.php através do evento onclick de um imput button, que está assim: <button onclick=" atualizaCompra ()" class='imput-concluir'>Finalizar</button> O Script que coloquei no Head da página é este: <script> function atualizaCompra () { $.ajax({ url:'atualiza.php', complete: function (atualizaPdIt) { alert(atualizaPdIt.responseText); }, error: function () { alert('Erro'); } }); return false; } </script> Porém, a função não é executada. O que está errado? Para constar, o script de atualização do arquivo atualiza.php funciona perfeitamente bem quanto deixado dentro de um bloco de código da página finalizar_compra.php, portanto, não é nele que está o problema, mas na forma como estou chamando.
  3. Aureo Almeida

    Colocar itens de um carrinho de compras numa tabela do BD

    Consegui o que queria com este script: foreach ($resultsCarts as $result){ $sql1 = "INSERT INTO psd_itens(itens_id, pedido_id, itens_produto, itens_quantidade, itens_valor_produto, itens_total ) values( '', '".$ultpedido."', '".$result['name']."', '".$result['quantity']."', '".$result['price']."', '".$result['subtotal']."' )"; $stmt1 = $conn->prepare($sql1); $stmt1->execute(); }
  4. Eu possuo um carrinho de compras que me mostra os itens selecionados pelo cliente dentro de um foreach, conforme código abaixo: <?php foreach($resultsCarts as $result) : ?> <tr> <td><?php echo $result['name']?></td> <td><input type="text" name="prod[<?php echo $result['id']?>]" value="<?php echo $result['quantity']?>" size="1" max="<?php echo $result['estoque']?>" min="1"/></td> <td>R$<?php echo number_format($result['price'], 2, ',', '.')?></td> <td>R$<?php echo number_format($result['subtotal'], 2, ',', '.')?></td> </tr> <?php endforeach;?> Eu gostaria de inserir todos os itens retornados dentro de uma tabela chamada itens_pedido, vinculando todos eles ao último pedido feito. O código que insere os dados do último pedido e que me retorna o identificador dela é o que segue abaixo, e funciona: $sql = "INSERT INTO psd_pedidos (pedido_id, pedido_data, pedido_data_hora, pedido_valor, pedido_status) values('','".date('Y-m-d')."','".date('Y-m-d H:i:s')."', '".$ttpagseguro."','finalizado')"; $stmt = $conn->prepare($sql); $stmt->execute(); $ultpedido = $conn->lastInsertId(); O problema que não estou conseguindo resolver é: como pegar a informação que e é retornada pela variável $ultpedido, que é o identificador do último pedido feito, e todos os itens do carrinho de compras e inseri-los na tabela psd_itens, vinculados a este último pedido. O campo que armazena o último pedido na tabela psd_itens é uma chave estrangeira da tabela psd_pedidos e tem o nome de pedido_id. Eu desenvolvi o seguinte código, que me parece não ter problemas, mas não estou sabendo usa-lo: //VARIAVEIS COM VALORES QUE RETORNAM NO FOREACH $nmproduto = $result['name']; $vlproduto = $result['price']; $qtproduto = $result['quantity']; $sbtproduto = $result['subtotal']; $sql = "INSERT INTO psd_itens(itens_id, pedido_id, itens_produto, itens_quantidade, itens_valor_produto, itens_total ) values( '', '".$ultpedido."', '".$nmproduto."', '".$vlproduto."', '".$qtproduto."', '".$sbtproduto."') "; $stmt = $conn->prepare($sql); $stmt->execute(); Sei que ele deve estar dentro do foreach mas todas as minhas tentativas com soluções de outras experiências retornaram erros. Alguém sabe como eu resolvo estes problemas?
  5. O Felipe Guedes Coutinho ajudou na resolução de um problema quanto a como passar valores de variáveis de uma página com um carrinho para um arquivo com a API do PagSeguro. Consegui fazer isso através de sessões, e a passagem ocorre normalmente. O problema que surgiu dessa solução, que para o meu contexto é a melhor, é que a API do PagSeguro Lightbox não está reconhecendo variáveis em tempo de execução. Mesmo que convertidas em STRING. O tópico que abri e que creio que se esgotou o problema original em que o Felipe Guedes Coutinho ajudou a resolver foi este: Colocando o problema. Possuo duas variáveis, uma que contém um nome de produto que quero passar como parâmetro para um pagamento no PagSeguro lightbox, e outra com o valor. Ambas são oriundas de um processo em tempo de execução, e não há problema com ele, pois elas são preenchidas normalmente e os valores são impressos no display. A variável $produto_nome e a $ttBrasil. Elas são repassadas para duas variáveis SESSION: $_SESSION['descricao'] = $produto_nome; $_SESSION['valorTotal'] = $ttBrasil; Na página em que se encontra o script da API do PagSeguro, chamada pagseguro.php, esses valores são recebidos sem problemas (numa condição que explicitarei), de duas formas: $data['itemDescription1'] = $_SESSION['descricao']; $data['itemAmount1'] = $_SESSION['valorTotal']; Ou $data['itemDescription1'] = "'".$_SESSION['descricao']."'"; $data['itemAmount1'] = "'".$_SESSION['valorTotal']."'"; O problema é que este processo funciona normalmente e a variável é reconhecida quando o valor é declarado estaticamente e entre aspas simples. Em tempo de execução não. Funciona quando: $ttBrasil = '50.00'; $produto_nome = 'Nome de Teste'; Se as variáveis vierem em tempo de execução, mesmo existindo (eu as imprimo no display normalmente), a API do PagSeguro não reconhece. Quando falo em tempo de execução, é as SESSION recebendo diretamente as variáveis: $_SESSION['descricao'] = $produto_nome; $_SESSION['valorTotal'] = $ttBrasil; A variável $ttBrasil é DECIMAL no BD, reconhecida como DOUBLE pelo PHP. Eu converti ela para STRING de várias formas, sempre mantendo o problema, mas achei mais adequado usar a função STRING, que converte FLOAT em STRING: $ttBrasil = (string) $ttBrasil; Verifiquei após a conversão e ela retorna como do tipo STRING. Uso esses comandos para verificar o tipo de variável e o valor. echo gettype($ttBrasil); echo $_SESSION['valorTotal']; Este é o problema que não consegui resolver.
  6. Aureo Almeida

    Passar valor para lightbox transparente do PagSeguro

    Apesar de ter resolvida a forma de passar os dados, como informei após realizar um exemplo simples com a proposta que passaste, estou com um problema de concatenação de aspas nas variáveis em tempo de execução. Fiz como sugeriste, criando as variáveis de sessão na página carrinho.php e passando para a página pagseguro.php. No exemplo simples ok, funcionou e passou os valores que atribui a ela de forma estática. Quando atribuo o valor a ela manualmente, entre aspas simples, ela funciona. Porém, quando atribuo valor em tempo de execução, não. EXEMPLIFICANDO FUNCIONA CORRETAMENTE A DEFINIÇÃO NA PÁGINA CARRINHO.PHP $ttcomprabrasil= ’50.00’; $_SESSION['valorTotal'] = $ttcomprabrasil; NÃO FUNCIONA NA PÁGINA CARRINHO.PHP $_SESSION['valorTotal'] = $ttcomprabrasil; A referida variável tem o valor da soma de outras duas: $ttcomprabrasil = $frete + $valor_total_venda; Testei e ela funciona e imprime corretamente os valores. CÓDIGO NA PÁGINA PAGSEGURO.PHP session_start(); $data['itemDescription1'] = $_SESSION['descricao']; $data['itemAmount1'] = $_SESSION['valorTotal']; $data['token'] =; $data['email'] =; $data['currency'] = 'BRL'; $data['itemId1'] = '1'; $data['itemQuantity1'] = '1'; $data['itemDescription1'] = "'".$_SESSION['descricao']."'"; $data['itemAmount1'] = "'".$_SESSION['valorTotal']."'";
  7. Aureo Almeida

    Passar valor para lightbox transparente do PagSeguro

    Felipe. Funcionou. Muito obrigado
  8. Aureo Almeida

    Passar valor para lightbox transparente do PagSeguro

    Obrigado pela orientação Felipe. O problema era um pouco diferente da compreensão que tiveste, mas tentei tua solução, pois poderia se aplicar, e infelizmente o lightbox do pag seguro não funcionou. Fica rodando. Na verdade, é na página do PagSeguro que eu tenho as seguintes variáveis. $data['token'] = 'Oculto'; $data['email'] = 'Oculto'; $data['currency'] = 'BRL'; $data['itemId1'] = '1'; $data['itemQuantity1'] = '1'; $data['itemDescription1'] = 'Produto de Teste'; $data['itemAmount1'] = '200.00'; Eu tenho uma sessão na página carrinho.php chamada provisoriamente de carrinho: $_SESSION['carrinho'] = array();. Ela funciona para armazenar os produtos. O que eu gostaria de passar para a página pagseguro.php são duas variáveis: uma com o valor total da compra no carrinho, e outra com a descrição do produto. A primeira é a variável $produto_nome e a segunda é a $ttcomprabrasil, definidas na página carrinho.php. $data['itemDescription1'] = $produto_nome; $data['itemAmount1'] = $ttcomprabrasil; Talvez fique mais claro o problema, que eu não tenha conseguido passar concretamente, pois trabalhei com o problema mais geral, e que eu ainda não consegui resolver.
  9. Estou tentando modificar um projeto de carrinho de compras cujo script peguei entre vários que está disponível na internet. Ele funciona bem, porém com uma determinada lógica: a quantidade de itens de um produto é aumentada conforme a quantidade de vezes que o cliente adicionar o produto. Ou seja, se ele for na página do produto para inseri-lo 3 vezes, ele aumenta a quantidade para 3. O problema é que no projeto que estou desenvolvendo os produtos possuem possibilidade de escolha de quantidade, pois podem ser vários e não dá para a pessoa ir e clicar 15 vezes nele. E não estou conseguindo mudar está lógica. O que eu gostaria é que quando o cliente selecionasse uma quantidade, e isso não é um problema, essa quantidade fosse recebida na página do carrinho junto com outras informações do produto puxado pela id dele no banco de dados. Este é o script básico: <?php $item_carrinho = 0; if(count($_SESSION['carrinho']) > 0){ foreach($_SESSION['carrinho'] as $id_produtos_carrinho => $quantidade_produto_carrinho){ $item_carrinho++; $query = "SELECT * FROM psd_produtos WHERE psd_produtos.prd_id = '".$id_produtos_carrinho."'"; $read_produto_carrinho = mysqli_query($conn, $query) or die(mysql_error()); if(mysqli_num_rows($read_produto_carrinho) > 0){ foreach($read_produto_carrinho as $read_produto_carrinho_view); $valor_total_produto_carrinho = $quantidade_produto_carrinho * $read_produto_carrinho_view['prd_valor']; $valor_total_venda += $valor_total_produto_carrinho; } echo ' <tr> <td class="car-item">'.$item_carrinho.'</td> <td class="car-nome">'.$read_produto_carrinho_view['prd_nome'].'</td> <td class="car-valor">'.number_format($read_produto_carrinho_view['prd_valor'], 2, ',', '.').'</td> <td class="car-qtd">'.$quantidade_produto_carrinho.'</td> <td class="car-total">'.number_format($valor_total_produto_carrinho, 2, ',', '.').'</td> <td class="car-opcao"><a href="deletar-prod1.php?id='.$id_produtos_carrinho.'" class="opcao">Excluir<a/></td> </tr> '; } } ?>
  10. Aureo Almeida

    Passar valor para lightbox transparente do PagSeguro

    Ajudou sim Felipe, com a sugestão de estrutura da tabela para controlar a ordem dos pedidos. Porém, olhando creio que eu não fui claro no pedido de informação, pois não mencionei que o que eu não estou conseguindo fazer é passar as referidas variaveis do PHP, $ttcompra e $ttitens, da página onde está o carrinho, chamada carrinho.php, para a página onde está o script do PagSeguro, chamada pagseguro.php. O carrinho funciona, o script do Pag Seguro com valores estáticos e de teste funciona, mas não consigo fazer a passagem acima, de um arquivo para o outro.
  11. Aureo Almeida

    problema com variavel indefinida

    Estou há varias horas tentando descobrir o problema com a msg " Undefined variable: valor_total_venda", que recebo em relação a variavel $valor_total_venda do código abaixo e não estou descobrindo o problema. O mesmo código na página meucarrinho.php funciona perfeitamente. O que pode estar ocorrendo? if(count($_SESSION['carrinho']) == 0){ echo "<script>alert('Não existe produtos no carinho')<script/>"; echo "<script>window.location = 'meucarrinho.php'<script/>"; }else{ $insert_pedido = "INSERT INTO psd_pedidos(pedido_data, pedido_data_hora, pedido_valor, pedido_status) VALUES('".date('Y-m-d')."', '".date('Y-m-d H:i:s')."', '0', '0')"; mysqli_query($conn, $insert_pedido); $read_ultimo_pedido = mysqli_query($conn, "SELECT pedido_id FROM psd_pedidos ORDER BY pedido_id DESC LIMIT 1"); if(mysqli_num_rows($read_ultimo_pedido) > 0){ foreach($read_ultimo_pedido as $read_ultimo_pedido_view); } foreach($_SESSION['carrinho'] as $id_produto => $qtd_produto){ $read_produto_carrinho = mysqli_query($conn, "SELECT prd_nome, prd_valor FROM psd_produtos WHERE prd_id = '".$id_produto."'"); if(mysqli_num_rows($read_produto_carrinho) > 0){ foreach($read_produto_carrinho as $read_produto_carrinho_view); $valor_total_produto_carrinho = $qtd_produto * $read_produto_carrinho_view['prd_valor']; $valor_total_venda += $valor_total_produto_carrinho; }
  12. Eu estou desenvolvendo um carrinho de compras num arquivo chamando carrinho.php e entre os scripts disponíveis da API para pagar através PagSeguro escolhi um que chama um arquivo com as informações da API (pagseguro.php), pega os dados presente nele e abre API do Checkout Transparente para o pagamento. Este é o script: <script> function enviaPagseguro(){ $.post('pagseguro.php','',function(data){ $('#code').val(data); $('#comprar').submit(); }) } </script> O que eu não estou conseguindo fazer é passar o valor total das compras do carrinho para o arquivo com os parâmetros da APPI. Com valores fixos a API funciona bem, como posso exemplificar com os seguintes parâmetros: $data['token'] =OCULTO'; $data['email'] = OCULTO'; $data['currency'] = 'BRL'; $data['itemId1'] = '1'; $data['itemQuantity1'] = '1'; $data['itemDescription1'] = 'Produto de Teste'; $data['itemAmount1'] = '299.00'; $url = 'https://ws.pagseguro.uol.com.br/v2/checkout'; O que eu desejo é fazer três coisas, que não estou sabendo fazer. Primeira: passar como valor do parâmetro $data['itemAmount1'] a variável que possuo na página que faz a totalização da compra, chamada de $ttcompra; Segunda: passar como valor do parâmetro $data['itemQuantity1'] a variável que mostra o total de itens, chamada $ttitems. E a terceira é que desejaria que nas informações a serem enviadas para o PagSeguro estivesse um novo item, com o valor do código da compra. É possível isso nesta API eu estou utilizando? Busquei na documentação dela no PagSeguro e não achei. Eles estão mudando a página e não se encontra muita coisa.
  13. Aureo Almeida

    Variável de array não recebe os valores da array $_POST

    Resolveu o problema. Obrigado
  14. Estou tentando receber os valores da array $_POST numa outra variável array e estou com dificuldade. Meu código é o seguinte: session_start(); if (isset($_SESSION['carrinho'])){ $nmproduto = $_POST['nome']; $qtda = $_POST['quantidade']; $preco = $_POST['valor']; $carcompras [] = array( 'nome' => $nmproduto, 'quantidade' => $qtda, 'valor' => $preco, ); } if (isset ($carcompras)) $_SESSION ['carrinho'] = $carcompras; ?> Na página que recebe a $_POST os dados chegam, conforme mostra o var_dump($_POST): array(5) { ["prd_id"]=> string(1) "3" ["nome"]=> string(19) "GEL " ["valor"]=> string(5) "14.90" ["quantidade"]=> string(1) "1" ["sabor"]=> string(7) "Morango" } Ao aplicar o var_dump($carcompras) retorna Notice: Undefined variable: carcompras. Onde está meu erro na construção da $carcompras?
  15. Aureo Almeida

    [RESOLVIDO] Fazer tag img vazia não aparecer

    Entendeu sim e tua solução deu certo. Na verdade, as soluções que experimentei não fazia o echo separado da div. Agradeço
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.