Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal, estou tendo um problema e não estou conseguindo resolver, estou querendo recuperar os dados de uma pagina de pedido e enviar via phpmailer. Segue o codigo:
<h3>Confirmar Pedido</h3>
<hr>
<!-- botoes e opções de cima -->
<section class="row">
<div class="col-md-12 " align="right">
<a href="{$PAG_CARRINHO}" class="btn btn-info" title="">Voltar para Carrinho</a>
</div>
<div class="col-md-4">
</div>
<div class="col-md-4 text-right">
</div>
</section>
<br>
<!-- table listagem de itens -->
<section class="row ">
<center>
<table class="table table-bordered" style="width: 95%">
<!--
<tr>
<td colspan="6" align="right"><a href="" class="btn btn-success" title="">Comprar Mais</a></td>
</tr> -->
<tr class="text-danger bg-danger">
<td></td>
<td>Produto</td>
<td>Valor R$</td>
<td>X</td>
<td>Sub Total R$</td>
</tr>
{foreach from=$PRO item=P}
<tr>
<td> <img src="{$P.pro_img}" alt="{$P.pro_nome}"> </td>
<td> {$P.pro_nome} </td>
<td> {$P.pro_valor} </td>
<td> {$P.pro_qtd} </td>
<td> {$P.pro_subTotal} </td>
</tr>
{/foreach}
</table>
</center>
</section><!-- fim da listagem itens -->
<!-- botoes de baixo e valor total -->
<section class="row" id="total">
<div class="col-md-4 text-right">
</div>
<div class="col-md-4 text-right text-danger bg-warning">
<h4>
Total : R$ {$TOTAL}
</h4>
</div>
<!-- botão de limpar-->
<div class="col-md-12">
<form name="pedido_finalizar" id="pedido_finalizar" method='post'action="{$PAG_FINALIZAR}>
<h4>Por favor inserir pagamento Cartão ou Dinheiro!</h4>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="cartao" name='pagamento' value='1'>
<label class="custom-control-label" for="cartao">Cartão</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="dinheiro" name='pagamento' value='2'>
<label class="custom-control-label" for="dinheiro">Dinheiro</label>
</div>
<h4>Caso seu pagamento seja dinheiro, vai precisar de troco? Se sim para quantos?</h4>
<input type="text" name="troco" placeholder="Precisa de Troco?" class="btn-block text-danger" required>
</form>
</div>
<hr>
<br>
<div class="col-md-4 ">
<form name="pedido_finalizar" id="pedido_finalizar" method="post" action="{$PAG_FINALIZAR}">
<button class="btn btn-success btn-block" type="submit"> <i class="glyphicon glyphicon-ok"></i> Finalizar Pedido </button>
</form>
</div>
<!-- botão finalzar -->
</section>
<br>
<hr>
</form>
</div>
</section>
<br>
<br>
<br>
<br>
Ja tentei varias formas mas so chega os dados do pedido, e não a forma de pagamaneto.>
42 minutos atrás, Massaki disse:
Você já fez um dump nos dados do formulário?
print_r($_POST);
Eu sou insciente em PHP, não conheço esta função.print_r() é uma função para imprimir variáveis de forma legível para nós(humanos).
Ela retorna os valores de um váriavel simples ou um Array por exemplo.
Faça o que o Massaki disse, que vai aparecer tudo o que está mandando pelo método POST do seu formulário, ok?
Veja mais sobre em: http://php.net/manual/pt_BR/function.print-r.php
>
23 horas atrás, marcosmarcolin disse:
print_r() é uma função para imprimir variáveis de forma legível para nós(humanos).
Ela retorna os valores de um váriavel simples ou um Array por exemplo.
Faça o que o Massaki disse, que vai aparecer tudo o que está mandando pelo método POST do seu formulário, ok?
Veja mais sobre em: http://php.net/manual/pt_BR/function.print-r.php
Já tentei, mas buga minha tela e não apresenta no email os dados de pagamento.
>
Em 14/11/2018 at 11:05, Massaki disse:
Você já fez um dump nos dados do formulário?
print_r($_POST);
Eu usei assim:
<?php
if(isset($_POST['pagamento'])){
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>
<div class="col-md-12">
<form method='post'>
<h4>Por favor inserir pagamento Cartão ou Dinheiro!</h4>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="cartao" name='pagamento' value='1'>
<label class="custom-control-label" for="cartao">Cartão</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="dinheiro" name='pagamento' value='2'>
<label class="custom-control-label" for="dinheiro">Dinheiro</label>
</div>
<h4>Caso seu pagamento seja dinheiro, vai precisar de troco? Se sim para quantos?</h4>
<input type="text" name="troco" placeholder="Precisa de Troco?" class="btn-block text-danger" required>
<div class='text-right'><button type='submit' class='btn btn-primary'>Enviar</button></div>
</form>
</div>
Mas mesmo assim não consegui passar no email.Poste o código do $PAG_FINALIZAR para vermos como você esta recebendo os dados do formulário e enviando.
>
Agora, marcosmarcolin disse:
Poste o código do $PAG_FINALIZAR para vermos como você esta recebendo os dados do formulário e enviando.
<?php
if(!Login::Logado()){
Login::AcessoNegado();
Rotas::Redirecionar(2, Rotas::pag_ClienteLogin()); if(isset($_SESSION['PRO'])) {
$smarty = new Template();
$carrinho = new Carrinho();
$ref_cod_pedido = date('ymdHms') . $_SESSION['CLI']['cli_id'];
if(!isset($_SESSION['PED']['pedido'])){
$_SESSION['PED']['pedido'] = $ref_cod_pedido;
}
if(!isset($_SESSION['PED']['ref'])){
$_SESSION['PED']['ref'] = $ref_cod_pedido;
}
$pedido = new Pedidos();
$cliente = $_SESSION['CLI']['cli_id'];
$cod = $_SESSION['PED']['pedido'];
$ref = $_SESSION['PED']['ref'];
//$frete = $_SESSION['PED']['frete'];
$smarty->assign('PRO', $carrinho->GetCarrinho());
$smarty->assign('TOTAL', Sistema::MoedaBR($carrinho->GetTotal()));
$smarty->assign('NOME_CLIENTE', $_SESSION['CLI']['cli_nome']);
$smarty->assign('SITE_NOME', Config::SITE_NOME);
$smarty->assign('SITE_HOME', Rotas::get_SiteHOME());
$smarty->assign('PAG_MINHA_CONTA', Rotas::pag_CLientePedidos());
$smarty->assign('TEMA', Rotas::get_SiteTEMA());
//$smarty->assign('FRETE', Sistema::MoedaBR($_SESSION['PED']['frete']));
//$smarty->assign('TOTAL_FRETE', Sistema::MoedaBR($_SESSION['PED']['total_com_frete']));
$smarty->assign('PAG_RETORNO', Rotas::pag_PedidoRetorno());
$smarty->assign('PAG_ERRO',Rotas::pag_PedidoRetornoERRO());
$smarty->assign('REF', $ref);
//$smarty->assign('PAG_PAGAMENTO',Rotas::pag_Pagamento());
$email = new EnviarEmail();
$destinatarios = array(Config::SITE_EMAIL_ADM, $_SESSION['CLI']['cli_email']);
$assunto = 'Pedido da Loja Freitas - ' . Sistema::DataAtualBR();
$msg = $smarty->fetch('email_compra.tpl');
$pagamento= 'pedido_finalizar';
$email->Enviar($assunto, $msg, $destinatarios, $pagamento);
if($pedido->PedidoGravar($cliente, $cod, $ref)){
$pag = new PagamentoPS();
$pag->Pagamento($_SESSION['CLI'], $_SESSION['PED'], $carrinho->GetCarrinho());
// var_dump($pag);
// passando para o template dados do PS
$smarty->assign('PS_URL', $pag->psURL);
$smarty->assign('PS_COD', $pag->psCod);
$smarty->assign('PS_SCRIPT', $pag->psURL_Script);
$pedido->LimparSessoes();
}
$smarty->display('pedido_finalizar.tpl');
}else{
echo '<h4 class="alert alert-danger"> Não possui produtos no carrinho! </h4>';
Rotas::Redirecionar(3, Rotas::pag_Produtos());
}
}
/*
echo '<pre>';
var_dump($carrinho->GetCarrinho());
echo '</pre>'; ?>
Essa seria a pagina resconsavel por enviar os dados do pedidos para o Banco e tambem para o email.Certo, o que acontece que é você esta enviando o email com a variável $pagamento, porém você está passando um valor para ela na linha abaixo:
$pagamento= 'pedido_finalizar';
Remova a linha citada acima.
Porém, o que você precisa é pegar o valor do formulário e passar pro envio do email, certo?
No formulário faça assim:
<input type="radio" name="forma_pagamento" value="Dinheiro" />Dinheiro
<input type="radio" name="forma_pagamento" value="Cartão" />Cartão
<!--compartilham o mesmo name pois só pode selecionar uma das opções-->
Agora no seu PHP, antes de enviar o email, recebe o que for selecionado no formulário:
$forma_pagamento = $_POST['forma_pagamento'];
// só passar por parâmetro depois
$email->Enviar($assunto, $msg, $destinatarios, $forma_pagamento);
Se o restante do código estiver correto, irá funcionar.
Outra questão, você está passando o** form** duas vezes sem necessidade, deixa apenas a primeira vez.
Tenta aí e retorna.>
Em 17/11/2018 at 19:17, marcosmarcolin disse:
Certo, o que acontece que é você esta enviando o email com a variável $pagamento, porém você está passando um valor para ela na linha abaixo:
$pagamento= 'pedido_finalizar';
Remova a linha citada acima.
Porém, o que você precisa é pegar o valor do formulário e passar pro envio do email, certo?
No formulário faça assim:
<input type="radio" name="forma_pagamento" value="Dinheiro" />Dinheiro
<input type="radio" name="forma_pagamento" value="Cartão" />Cartão
<!--compartilham o mesmo name pois só pode selecionar uma das opções-->
Agora no seu PHP, antes de enviar o email, recebe o que for selecionado no formulário:
$forma_pagamento = $_POST['forma_pagamento'];
// só passar por parâmetro depois
$email->Enviar($assunto, $msg, $destinatarios, $forma_pagamento);
Se o restante do código estiver correto, irá funcionar.
Outra questão, você está passando o** form** duas vezes sem necessidade, deixa apenas a primeira vez.
Tenta aí e retorna.
Muito obrigado, mas eu fiz de forma diferente e graças a Deus deu certo.
Você já fez um dump nos dados do formulário?
print_r($_POST);