redirect da pagina php chiamata da ajax

  • Creatore Discussione Creatore Discussione amhal
  • Data di inizio Data di inizio

amhal

Utente Attivo
17 Feb 2011
89
1
8
ciao a tutti ho una chiamata Ajax a una pagina php, dentro la pagina php ho una serie di if ed else, quello che vorrei è quando si verifica la else, mandare dei dati in sessione e ricaricare una pagina php diversa, i dati in sessione me li mette, ma non carica la pagina php. posto il codice
PHP:
<?php

switch($_POST['submit']){

    case 'contenuti':
        if($_POST['lingua'] == NULL){
            $array = array('messaggio' => 'Inserire la lingua');
            echo json_encode($array);
        }//fine if
        elseif($_POST['progetto'] == NULL){
            $array = array('messaggio' => 'Inserire il progetto');
            echo json_encode($array);       
        }//fine elseif       
        elseif($_POST['nome'] == NULL){
            $array = array('messaggio' => 'Inserire il nome');
            echo json_encode($array);       
        }       
        elseif($_POST['cognome'] == NULL){
            $array = array('messaggio' => 'Inserire il cognome');
            echo json_encode($array);       
        }//fine elseif   
        else{
             session_start();
             $_SESSION['lingua']    = $_POST['lingua'];
             $_SESSION['progetto']    = $_POST['progetto'];
             $_SESSION['nome']        = $_POST['nome'];
             $_SESSION['cognome']    = $_POST['cognome'];
             header('LOCATION: home.php');
            }//fine if
    break;


    default: echo  'sono in default';
    
}//fine switch

quello che non funziona e header('LOCATION: home.php');
 
ciao
la chiamata header('LOCATION: home.php'); ritorna al javascript la pagina home.php non effettua il redirect come immagini.

Per farlo devi effettuare il redirect lato client, sul codice javascript dove esegui la chiamata ajax

lato server
PHP:
<?php

switch($_POST['submit']){
       ...
        else{
             session_start();
             $_SESSION['lingua']    = $_POST['lingua'];
             $_SESSION['progetto']    = $_POST['progetto'];
             $_SESSION['nome']        = $_POST['nome'];
             $_SESSION['cognome']    = $_POST['cognome'];
             echo "redirect";
            }//fine if

lato client:
Codice:
$.post( "ajax/miapagina.php", function( data ) {
  if(data=='redirect'){
      window.location.href = "nuovapagina.php";
}
});
 
grazie tante ho modificato il tuo script che mi ha salvato la vita grazie tante
 

Discussioni simili