Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola feras do java script e ajax tenho um codigo que faz uma requisição via post pelo ajax para o php e preciso que depois dessa requisição ele faça um header com a url gerada mais nao estou conseguindo segue o codigo
jQuery(document).ready(function(){ jQuery('#compra_ajax').submit(function(){ var dados = jQuery( this ).serialize(). jQuery.ajax({ type: "POST", url: "compra_ajax.php", data: dados, success: function( data ) { $('#sucesso_compra_ajax').html(data). } }). return false. }). }). <form method="post" action="/central/comprar" id="compra_ajax"> <div class="row"> <div class="col-sm-3"> <div class="form-group"> <label for="CCnumber">Quantidade</label> <input type="text" name="quantidade" class="form-control"> </div> </div><!-- /.col-sm-6 --> <div class="col-sm-3"> <div class="form-group"> <label for="CCnumber">Processador</label> <select name="tipo" class="form-control"> <option value="">Selecione</option> <option value="ghs">GHS</option> <option value="khs">KHS</option> </select> </div> </div><!-- /.col-sm-6 --> <div class="col-sm-3"> <div class="form-group"> <label for="CCnumber">Pagar com</label> <select name="pagamento" class="form-control"> <option value="">Selecione</option> <?php if(ATIVE_PAGSEGURO){?> <option value="pagseguro">Pagseguro</option> <?php }?> <?php if(ATIVE_MOIP){?> <option value="moip">Moip</option> <?php }?> <?php if(ATIVE_BCASH){?> <option value="bcash">Bcash</option> <?php }?> <?php if(ATIVE_PAYPAL){?> <option value="paypal">Paypal</option> <?php }?> </select> </div> </div><!-- /.col-sm-6 --> <div class="col-sm-3"> <div class="form-group"> <label for="CCnumber"></label> <button type="submit" name="comprar" class="btn btn-success btn-block"><i class="fa fa-sign-in"></i> Comprar</button> </div> </div> </div><!-- /.row --> </form> <div id="sucesso_compra_ajax"></div> <?php
if (!isset($_SESSION)) session_start(). require_once ("../config/app.php"). require("../config/configurations.php"). $pdo = conectar(). require_once ("functions.php"). $login=decrypt($_SESSION["UsuarioLogin"]). $quantidade=addslashes($_POST["quantidade"]). $tipo=addslashes($_POST["tipo"]). $pagamento=addslashes($_POST["pagamento"]). if($quantidade=="" AND $tipo=="" AND $pagamento==""){ $erro="Campos não podem ser vazios!". } else{ if($quantidade==""){ $erro="Seleciona uma quantidade para comprar!". } else{ if($tipo==""){ $erro="Defina o processador!". } else{ if($pagamento==""){ $erro="Selecione um meio de pagamento". } else{ $preco_ghs=VALUEGHS. $preco_khs=VALUEKHS. if($tipo=="ghs"){ $multi=($quantidade * $preco_ghs). } if($tipo=="khs"){ $multi=($quantidade * $preco_khs). } $cambio=number_format(cambio($multi,'USD','BRL'),'2',',','.'). $pagar=number_format(cambio($multi,'USD','BRL'),'2'). $hoje=date("Y-m-d H:i:s"). $grava=$pdo->prepare("insert into compras (id_user, data, valor, tipo, quantidade, intermediador, status)values('$id_user','$hoje','$cambio','$tipo','$quantidade','$pagamento','pendente')"). $busca=$pdo->prepare("select * from compras where id_user='$id_user' AND quantidade='$quantidade' AND intermediador='$pagamento'"). $busca->execute(). if($busca->rowCount()== "1"){ $erro="Você já cadastrou um pedido de compra com esta quantidade e meio de pagamento!". }else{ $grava->execute(). if($pagamento == "pagseguro"){ require_once "../library/PagSeguro/PagSeguroLibrary/PagSeguroLibrary.php". $paymentRequest = new PagSeguroPaymentRequest(). $paymentRequest->addItem($id_user, 'Compra de '.$quantidade.' '.$tipo.' por '.$login.'', 1, $pagar). $paymentRequest->setCurrency("BRL"). $paymentRequest->setShippingType(3). $paymentRequest->setReference($id_user). $credentials = PagSeguroConfig::getAccountCredentials(). // fazendo a requisição a API do PagSeguro pra obter a URL de pagamento $url = $paymentRequest->register($credentials). echo "<script type=\"text/javascript\">window.location.href = \"$url\". </script>". } $mensagem="usuario $login comprou $quantidade de $tipo pelo meio de pagamento $pagamento com status pendente". SalvaLog('log_compra', $mensagem). } } } } } $_SESSION["gravado"]="$quantidade". echo isset($erro)? '<div class="alert alert-danger alert-bold-border fade in alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>'. $erro. '</div>': ''. echo isset($sucesso)? '<div class="the-box rounded text-center">'. $sucesso. '</div>': ''. e porque queria que o sistema desse uma resposta mais rápida para os usuarios no tratamento dos erros, o header seria somente na resposta possitiva
success: function( data ) {
document.location.href = '/outra-pagina.html';
}Mas ainda assim acho sem sentido vc fazer isso.
O "normal" seria vc tratar os erros com html5 e javascript, e então enviar o form normalmente sem ajax, já que vai fazer um redirect mesmo.
ok, obrigado e resolvido
Se vc vai fazer um header, então para quê o ajax ?
Tira ele da jogada logo.