Ir para conteúdo
Fórum Script Brasil
  • 0

Finalizar Pedido demora muuuuito para carregar


Aviao de Descontos

Pergunta

Olá amigos, boa noite!

Primeiramente, eu sou novo no fórum, e se esse não for o lugar certo de postar a minha dúvida (solicitação), podem mover...

Bom vamos la..

Eu tenho um site de Compras Coletivas...

Ao clicar em comprar, o cliente é direcionado a uma pagina que ele digita o nome de quem utilizará o cupom, e a quantidade de cupons que ele deseja comprar..

Ele clica em 'Prosseguir' e vai para uma pagina que tem o resumo da compra que ele esta fazendo... e tem o botão "Finalizar Pedido".. é aí o problema...

Ao clicar nesse botão, qualquer navegador demora +/- 30 segundos para carregar a proxima pagina... ;/

Eu acho que nem todos os clientes teriam a paciencia de aguardar esse tempo sem clicar novamente em "Finalizar Pedido", o que faz gerar 2 pedidos...

Eu gostaria de resolver esse problema da demora, ou ao menos que quando o cliente clicasse em "Finalizar Pedido", abrisse uma 'janela' tipo pop-up aviasando que o pedido esta sendo processado, e que esse 'pop-up' não o deixasse clicar novamente em "Finalizar Pedido"...

Será que alguém pode me ajudar?

De qualquer forma segue o arquivo da página onde tem o botão "Finalizar Pedido":

<?php
session_start();
ob_start();
?>
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: private, no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
<?php require_once('Connections/compras.php'); ?>
<?
    require_once "_AJAX/CARRINHO/Carrinho.php";
    $carrinho = new Carrinho();
    $data = date("Y-m-d",time());

if (!IsLoggedIn()) {
    ob_end_clean();
    header("Location: cadastre-se.php?pagina=Cadastro");
    exit();
}
    
mysql_select_db($database_compras, $compras);
$query_ptgo = "SELECT * FROM pagseguro";
$ptgo = mysql_query($query_ptgo, $compras) or die(mysql_error());
$row_ptgo = mysql_fetch_assoc($ptgo);
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<? include("inc_metatag.php"); ?>
<style type="text/css">
<!--
@import url("_lib/css/estrutura_layout.css");
@import url("include/estilo.css");
@import url("_lib/css/carrinho.css");
-->
</style>
<script src="_lib/js/funcoes.js" type="text/javascript"></script>
<script src="_lib/js/_AJAX/AjaxClass.js" type="text/javascript"></script>
<script src="_lib/js/_AJAX/Carrinho.ajax.js" type="text/javascript"></script>
<script src="_lib/js/virtualpaginate.js" type="text/javascript"></script>
<script type="text/javascript">
var Carrinho = new Carrinho();
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
</script>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>
<body>
<div id="process_carrinho" style="display:none;"></div>
<div id="site">
  <?php include("inc_topo_intermas.php"); ?>
  <div id="conteudo">
    <div id="mioloInternas">
      <h2 class="titCategorias">Informações para pagamento</h2>
      <? if(count($_SESSION['Carrinho']['Produto']) >= 1){ ?>
      <div id="carrinho" style="margin-bottom:0px;">
        <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#D2CBB9">
          <tr>
            <td width="100" height="24" align="right"   class="tituloprodutos">Qtd. </td>
            <td height="24"   class="tituloprodutos">Ofertas</td>
            <td width="80" height="24" align="center"   class="tituloprodutos">Pre&ccedil;o Unit.</td>
            <td width="80" height="24" align="center"   class="tituloprodutos">SUB-Total</td>
          </tr>
          <?php
                     $i = 0;
                     foreach($_SESSION['Carrinho']['Produto'] AS $key => $valor){
                        $buscaProduto = mysql_query("SELECT nome FROM produtos WHERE id = ". $key);
                        $dadosProduto = mysql_fetch_object($buscaProduto);
                        if($i){    $linha = "tdtitle1"; $col = "td1"; $i = 0; }
                            else { $linha = "tdtitle2"; $col = "td2";    $i = 1;    }
                ?>
          <tr id="<? echo $key; ?>">
            <td width="100" height="24" align="right" valign="top"><? echo $_SESSION['Carrinho']['Produto'][$key]['qtd']; ?></td>
            <td height="24" valign="top" align="left"><strong style="font-size:12px;"><? echo ($dadosProduto->nome); ?></strong><bR />
              <? 
                  $t = 1;
                  $total = $_SESSION['Carrinho']['Produto'][$key]['qtd'];
                  while($t <= $total) { ?>
              <div style="color:#666; margin-bottom:5px; display:block; float:left; clear:both;">Nome <? echo $t; ?>: <strong><? echo $_SESSION['Carrinho']['Produto'][$key]['nome'.$t]; ?></strong></div>
              <? $t++; }; ?></td>
            <td width="80" height="24" align="center" valign="top">R$ <? echo number_format($_SESSION['Carrinho']['Produto'][$key]['valor'], 2, ',', '.'); ?></td>
            <td width="80" height="24" align="center" valign="top" id="totalProduto<? echo $key; ?>">R$ <? echo number_format($_SESSION['Carrinho']['Produto'][$key]['valor_total'], 2, ',', '.'); ?></td>
          </tr>
          <? } ?>
          <? if ($_SESSION['Desconto'] > 0) {
              $tt = $carrinho->getTotalApenasProduto($_SESSION['Carrinho']['Produto']);
             if ($tt < $_SESSION['Desconto']) {  $_SESSION['Desconto'] = $tt; }
           ?>
          <tr>
            <td height="24" colspan="3" align="right" class="tituloprodutos" style="background-color:#474445;  font-size:14px; color:#F00;">Desconto de Créditos: </td>
            <td height="24" align="center" class="tituloprodutos"  style="background-color:#474445;   font-size:14px; color:#F00;">R$ <? echo number_format($_SESSION['Desconto'], 2, ',', '.'); ?></td>
          </tr>
          <? } ?>
          <tr>
            <td height="24" colspan="3" align="right" class="tituloprodutos" style="background-color:#474445;  font-size:14px;">Total A PAGAR: </td>
            <td height="24" align="center" class="tituloprodutos"  style="background-color:#474445;   font-size:14px;">R$ <? echo number_format(($carrinho->getTotalApenasProduto($_SESSION['Carrinho']['Produto'])-$_SESSION['Desconto']), 2, ',', '.'); ?></td>
          </tr>
        </table>
      </div>
      <div id="carrinho" style="width:97%; background:transparent; margin:0px;">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td align="left" class="tituloprodutos" style="color:#000">FORMAS DE PAGAMENTO</td>
          </tr>
          <tr>
            <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td width="20"><img src="images/pagseguro.jpg" alt="" width="34" height="19" /></td>
                  <td align="left"><strong style="font-size:18PX; font-weight:normal;">PagSeguro</strong></td>
                  <td width="130"><form action="pagamento.php?pagto=PagSeguro" method="post">
                      <input type="image" name="imageField3" id="imageField3" src="images/finalizar.gif" style="width:190px; height:39px; border:0px; margin:0px; padding:0px;" />
                    </form></td>
                </tr>
              </table></td>
          </tr>
        </table>
        <table width="100%" border="0" cellspacing="0" cellpadding="0" style="clear:both;">
          <tr>
            <td align="left" style="background-color:transparent;"><a href="index.php"><img src="images/botao_voltar2.gif" /></a></td>
          </tr>
        </table>
      </div>
      <?php } else { ?>
      <div id="mensagem">
        <p align="center">Seu carrinho de compras est&aacute; vazio</p>
        <p align="center"><br />
          <a href="index.php"><img src="images/bt_continuar.jpg" /></a></p>
      </div>
      <?php } ?>
    </div>
  </div>
</div>
<?php include("inc_rodape_interno.php"); ?>
<? if ($_GET['erro'] == 1) { ?>
<script>
alert('Seu cupom de desconto não foi encontrado ou já foi utilizado!');
</script>
<? } ?>
</body>
</html>
<?
mysql_free_result($configuracao);
mysql_close($compras);
?>
E essa é a pagina que o botão "Finalizar Pedido" demora para redirecionar:
<?php 
session_start();
ob_start();
?>
<?
if(empty($_GET['pagto']) || !isset($_GET['pagto'])) header("Location:erro_pedido.php");

require_once('Connections/compras.php'); 
require_once "_AJAX/CARRINHO/Carrinho.php";

$query_configuracao = "SELECT * FROM configuracoes";
$configuracao = mysql_query($query_configuracao, $compras) or die(mysql_error());
$row_configuracao = mysql_fetch_assoc($configuracao);
$totalRows_configuracao = mysql_num_rows($configuracao);

mysql_select_db($database_compras, $compras);

function inserePedido($tipo, &$conn){

        $carrinho = new Carrinho();
        $total = ($carrinho->getTotalApenasProduto()) - $_SESSION['Desconto'];
        $total_semdesconto = ($carrinho->getTotalApenasProduto());
                
        $queryIn= "INSERT pedidos (data_pedido, id_cliente, situacao, total, total_semdesconto, pagto)
                                VALUES 
                                    ('".date('Y-m-d')."', 
                                    ".$_SESSION['Id'].", 
                                    'Novo', 
                                    ".$total.",
                                    ".$total_semdesconto.",
                                    '".$tipo."')";
            
        if(!mysql_query($queryIn, $conn)) echo $queryIn;
        
        $idPedido = mysql_insert_id();
        foreach($_SESSION['Carrinho']['Produto'] as $key => $valor){
        
            $t = 1;    
            $total = $_SESSION['Carrinho']['Produto'][$key]['qtd'];
        
            $insertSQL = "UPDATE pedidos SET id_produto = ".$key.", qtd = ".$_SESSION['Carrinho']['Produto'][$key]['qtd'].", id_cidade = ".$_SESSION['site_id'].", id_empresa = ".$_SESSION['Carrinho']['Produto'][$key]['id_subcategoria']." WHERE id = ".$idPedido."";
            $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());
            
            while($t <= $total) {
                $campo = "nome".$t;
                $SQL = "UPDATE pedidos SET ".$campo." = '".$_SESSION['Carrinho']['Produto'][$key][$campo]."' WHERE id = ".$idPedido."";
                $Result1 = mysql_query($SQL, $conn) or die(mysql_error());                
                $t++;
            }
                
            $insertSQL = "UPDATE produtos SET vendido = vendido + 1 WHERE id = ".$key."";            
            $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());
        
        }
            
        
return $idPedido;        
}

$idPedido = inserePedido($_GET['pagto'], $compras);                            

$query_cliente = "SELECT * FROM cliente WHERE id = ".$_SESSION['Id']." AND pagou_creditos = 'Não' AND id_indicador <> ''";
$cliente = mysql_query($query_cliente, $compras) or die(mysql_error());
$row_cliente = mysql_fetch_assoc($cliente);
$totalRows_cliente = mysql_num_rows($cliente);

if ($totalRows_cliente > 0) { 
    $insertSQL = "UPDATE cliente SET creditos = creditos + 10.00 WHERE id = ".$row_cliente['id_indicador']."";    
    $Result1 = mysql_query($insertSQL, $compras) or die(mysql_error());
    
    $insertSQL = "UPDATE cliente SET pagou_creditos = 'Sim' WHERE id = ".$row_cliente['id']."";    
    $Result1 = mysql_query($insertSQL, $compras) or die(mysql_error());
    
}

if ($_SESSION['Desconto'] > 0) {
    $insertSQL = "UPDATE cliente SET creditos = creditos - ".$_SESSION['Desconto']." WHERE id = ".$_SESSION['Id']."";    
    $Result1 = mysql_query($insertSQL, $compras) or die(mysql_error());
    
    $query_cliente = "SELECT * FROM cliente WHERE id = ".$_SESSION['Id']."";
    $cliente = mysql_query($query_cliente, $compras) or die(mysql_error());
    $row_cliente = mysql_fetch_assoc($cliente);
    $totalRows_cliente = mysql_num_rows($cliente);
    
    $_SESSION['Desconto'] = $row_cliente['creditos'];
}

ob_end_clean();
header("Location:envio.php?p=".$_GET['pagto']."&id=".$idPedido);
exit();
?>

Espero que alguém possa me ajudar... rsrs

Desde já obrigado galera!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Você pode mudar o texto do botão de finalizar pedido para 'Por favor Aguarde...' e ainda desabilita-lo para que não possa ser clicado novamente.... mas seria JavaScript e não PHP..

Seria algo como

function wait(bt){
    bt.value = 'Por Favor Aguarde...';
    bt.disabled = 'disabled';
}
e o uso seria:
<input type="submit" name="btEnviar" value="Finalizar Pedido" onclick="wait(this);" />

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...