Passaggio dati con ajax ad altra pagina

tivovi74

Utente Attivo
31 Gen 2012
58
1
8
Chiedo scusa, ho questo problema, alla fine di un ciclo ajax, creo questa stringa e la visualizzo sulla pagina.

Codice:
str_html = '<form id="risultato" method="post" enctype="multipart/form-data">'+'<h2 class="bold float">ARRIVO: '+'</h2>'+'<h2 class="bold float" id="arr">'+arrivo+'</h2>'+'<h2 class="bold float margin_prev">PARTENZA: '+'</h2>'+'<h2 class="bold float" id="par">'+partenza+'</h2>'+'<div class="pulisci">'+'</div>'+'<h2 class="bold float text_red">TOTALE GIORNI: '+'</h2>'+'<h2 class="bold float text_red" id="tot_grn">'+giorni+'</h2>'+'<h2 class="bold text_red float margin_prev">PREZZO: EURO  '+'</h2>'+'<h2 id="prz" class="bold text_red float">'+prezzo+'</h2>'+'</div>'+'<div class="pulisci">'+'<input type="button" id="sbt_2" class="submit float" value="prenota">'+'<input type="submit" id="sbt_3" class="submit float" value="nuovo preventivo">'+'</form>'+'<div class="pulisci">'+'</div>';

a questo punto l'utente può cliccare su prenota.

cliccando su prenota si avvia un altro ciclo ajax con il quale vorrei passare i dati che servono ad una pagina prenotazioni.php alla quale l'utente viene rinviato alla fine del ciclo ajax
Codice:
$(document).on('click', '#sbt_2', function(e){
            e.preventDefault();
            var val_arrivo = $('#arr').text();
            var val_partenza = $('#par').text();
            var giorni = $('#tot_grn').text();
            var prezzo = $('#prz').text();
            //var dati = new FormData ();
            //dati.append('arrivo', $('#arr').text());
            //dati.append('partenza', $('#par').text());
            var dati = {
                arrivo:val_arrivo,
                partenza:val_partenza,
            };
            console.log(dati);
            $.ajax({
                type: 'POST',
                url: 'prenotazioni.php',
                data: dati,
                typeData:'php',
                //cache: false,
                //processData: true,
                //contentType: false,
                error: function(){ alert("Siamo spiacenti ma non siamo riusciti a collegarci al server"); },
                success: function(data){location.href='prenotazioni.php'}
            })//fine ajax
           
        })//fine invio dati a pagina prenotazione

quando però vengo rinviato alla pagina prenotazioni.php mi compaiono i messaggi di errore

Notice: Undefined index: arrivo in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\masini_def\prenotazioni.php on line 6

Notice: Undefined index: partenza in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\masini_def\prenotazioni.php on line 7

praticamente è come se i dati non venissero ricevuti, posto anche l'inizio del codice php della pagina prenotazioni.php

PHP:
<?php
$arrivo = $_POST['arrivo'];
$partenza = $_POST['partenza'];
$prova = prova($arrivo,$partenza);
?>

qualcuno potrebbe darmi una mano?

Grazie mille a tutti
 
Ultima modifica:
Ciao, typeData non esiste come parametro per ajax dovrebbe essere dataType, comunque puoi anche toglierlo.
non vedo nel form gli input con name arrivo e partenza
 
in effetti non ci sono gli input, ho recuperato i valori egli h2 con id par e arr, e al controllo con console.log(dati) me li stampa correttamente.
e vorrei passare quelli.
Considera che ho inserito degli h2, perchè sono campi di conferma che derivano da precedenti input e da un precedente calcolo. Se inserisco un input, l'utente lo può rimodificare, giusto? e la cosa non dovrebbe accadere.
Grazie.
 
non ha senso fare una chiamata ajax se nel success metti una location alla pagina chiamata
togli
Codice:
location.href = 'prenotazioni.php'
e metti
Codice:
console.log(data)
troverai nel log la risposta della pagina chiamata
 
in realtà io vorrei che poi l'utente sia reindirizzato alla pagina prenotazioni.php e in quella pagina trovi i dati relativi ad arrivo e partenza, più altri che devo ancora aggiungere per portare a termine a prenotazione. Per questo avevo inserito nel success il location.href. in modo da farlo reindirizzare in automatico lì, e per questo vorrei inviare i dati in post a quella pagina per poi recuperarli col php ed elaborarli.
Come invece mi hai suggerito tu, mi importa tutto il codice della pagina prenotazioni.php nella pagina iniziale.
Grazie

P.S.
intanto continuo a fare un po' di tentativi
 
non ti serve allora una chiamata ajax, ti basta il form e al click fai il submit
devi mettere i valori anche all'interno dei campi input puoi utilizzare il type="hidden" cosi non si vedono
 
hai perfettamente ragione, grazie mille.
Mi stavo complicando la vita, invece di pensare alla cosa più semplice ed immediata.
Scusa se ti ho fatto perdere tempo. Grazie ancora.
 
  • Like
Reactions: criric

Discussioni simili