2014-02-13 1 views
0

나는 이미 한 번만 물었습니다. 그러나 이제는 같은 방식으로 고칠 수 없습니다. smartwizard 페이지가 있는데, 마침을 클릭하면 PHP 함수를 호출하여 서버에서 응답을 얻고 싶습니다.Ajax 포스트는 처음 작동하지 않지만 두 번째로 작동합니다.

내가 처음 클릭 할 때 응답은 내 페이지의 전체 HTML 코드이며 내 기능을 수행하지만 다른 페이지로 리디렉션됩니다. 하지만이 페이지로 다시 돌아가서 다시 클릭하면 원하는 응답이 제공되고 기능이 실행됩니다.

아무도 이런 일이 발생하는 이유에 대해 아이디어가 있습니까?

아약스 기능 :

if(confirm('Adicionar ao Carrinho?')){ 
    $.ajax({ 
     async:false, 
     url:'booking/add_to_cart', 

     success:function(response){ 
      alert(response); 
     }, 
     error: function() { 
      console.log($.makeArray(arguments)); 
     }, 
     complete: function() { 
      console.log($.makeArray(arguments)); 
     } 
    }); 
}else{ 
    return false; 
} 

내 PHP 컨트롤러 기능 :

내 모델 기능이 바로 DB에 삽입
public function add_to_Cart(){ 
    if(!isset($_SESSION['user_data'])){ 
     echo "Tem de fazer login para adicionar ao carrinho"; 
     exit(); 
    } 

    $detalhes_viagem=serialize($_SESSION['detalhes_viagem']); 
    $idcliente=$_SESSION['user_data']['idcliente']; 

    if(isset($_SESSION['hotel'])){ 
     $preco_hotel=$_SESSION['hotel']['preco_total'];  
     $hotel=serialize($_SESSION['hotel']); 
     unset($_SESSION['hotel']); 
    }else{ 
     $preco_hotel=0; 
     $hotel="FALSE"; 
    } 

    $voo="FALSE"; 

    if(isset($_SESSION['rent'])){ 
     $preco_rent=$_SESSION['rent']['preco_total'];  
     $rent=serialize($_SESSION['rent']); 
     unset($_SESSION['rent']); 
    }else{ 
     $preco_rent=0; 
     $rent="FALSE"; 
    } 

    if(isset($_SESSION['trans'])){ 
     $preco_trans=$_SESSION['trans']['preco_total'];  
     $trans=serialize($_SESSION['trans']); 
     unset($_SESSION['trans']); 
    }else{ 
     $preco_trans=0; 
     $trans="FALSE"; 
    } 

    if(isset($_SESSION['extras'])){ 
     $preco_extras=$_SESSION['extras']['preco_total'];  
     $extras=serialize($_SESSION['extras']); 
     unset($_SESSION['extras']); 
    }else{ 
     $preco_extras=0; 
     $extras="FALSE"; 
    } 

    $preco_total=$preco_hotel+$preco_rent+$preco_trans+$preco_extras; 
    $this->model->add_to_cart($hotel,$voo,$rent,$trans,$extras,$preco_total,$idcliente,$detalhes_viagem); 

    echo "something"; 
    exit(); 
} 

어떤 일이 것은 내가 처음 페이지를 입력 할 때이다

이 값 필요한 세션을 설정 한 후, ajax가 성공 함수를 실행하더라도 이것이 작동하지 않습니다. 페이지에 다시 들어가면 alredy가 100 % 작동합니다.

+1

포스트 코드, 또는 jsfiddle, 또는 $$ –

+0

를 코드는 어디 시도 ..? –

+0

~ 코드를 보지 않고는 도움을 얻을 수 없습니다! –

답변

0

이 사용 JQuery와에게

$(document).ready(function(){ 


if(confirm('Adicionar ao Carrinho?')){ 
    $.ajax({ 
     async:false, 
     url:'booking/add_to_cart', 

     success:function(response){ 
      alert(response); 
     }, 
     error: function() { 
      console.log($.makeArray(arguments)); 
     }, 
     complete: function() { 
      console.log($.makeArray(arguments)); 
     } 
    }); 
}else{ 
    return false; 
} 
}); 
관련 문제