Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23
  1. #11
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Noo non mi dire così era tanto bello fare tutto in una pagina . Ok...mi arrendo ..darò via libera all'action e visualizzerò l'errore nella pagina "actionata".

    Domanda che nasce spontanea: posso far visualizzare prima la modale e poi effettuare il redirect indietro vero? Magari attraverso la funzione sleep() ..vero?

  2. #12
    Originariamente inviato da wartpro
    Noo non mi dire così era tanto bello fare tutto in una pagina . Ok...mi arrendo ..darò via libera all'action e visualizzerò l'errore nella pagina "actionata".

    Domanda che nasce spontanea: posso far visualizzare prima la modale e poi effettuare il redirect indietro vero? Magari attraverso la funzione sleep() ..vero?
    No aspetta. La seconda pagina non deve avere nessun output, deve solo eseguire del codice e redirigere a quella di provenienza immediatamente appena terminato (o, se vuoi, redirigere ad una terza pagina che mostri l'esito, dipende dalle tue esigenze). Quindi se tutta l'interazione con l'utente deve stare sulla prima pagina ci puo' rimanere comunque, devi solo trasmettere i dati dalla pagina2 alla pagina1 nel modo che la tua interfaccia li vuole.

  3. #13
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Mh..ok..allora wait. Ti spiego.

    Dato il form. Lo script inizia subito dopo la chiusura del form.

    Quindi..

    - Se "isset" il pulsante che conferma..
    - Inizia la raccolta dei $_POST vari immettendoli nelle rispettive variabili.
    - Inizia inoltre la creazione delle modali, anch'esse inserite in variabili nel seguente modo:
    |
    |---> $aproModale = "<div id='io_apro'>";
    |---> $chiudoModale = "</div>";
    |---> $modaleJQUERY = "<script> io contengo il codice della modale </script>";

    - Poi, iniziano i controlli e..in caso di errore..l'echo con l'errore è sputato fuori cosi:
    |
    |---> if ($nome == "") { echo $aproModale, "Campo nome vuoto", $chiudoModale, $modaleJQUERY;


    ####

    Ecco. In caso di errore è così che funziona la mia situation. In caso tutto bene invece, stessa procedura: unica differenza è che vedrai una modale con scritto "Dati inviati".

    ####

    Sulla base di quanto detto...consigli??

  4. #14
    Come dicevo devi semplicemente far passare i dati all'indietro da pagina2 a pagina1. Ad esempio puoi usare le sessioni. In pagina1 anziche' prendere i dati da $_POST li prendi da $_SESSION.

  5. #15
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Mmmmh devo fare così quindi?


    - Metto un action al form così: action="pagina2.php"
    |
    |---> Tolgo quindi tutta la parte php che effettua i controlli. Immettendola in pagina2.php (Giusto?)

    - Se pagina2.php riscontra errori..............qui mi perdo..cosa fare, che codice scrivere, dove, come!
    |
    |
    |---> Soluzione possibile a questo mio dubbio: redirect indietro a pagina1 (del form) e...faccio apparire la modale? Come?

  6. #16
    Allora il concetto generale e' questo. Tu devi eseguire un'azione che ha tre fasi (4 di cui 2 in alternativa):
    1. inviare dati
    2. controllare i dati
    3a. se i dati sono validi fare qualcosa coi dati
    3b. se i dati non sono validi mostrare messaggio di errore

    Ora l'invio lo fa pagina1, il controllo e il "fare qualcosa" lo fa pagina2, rimane da decidere come mostrare gli errori. Uno scenario tipico e' che dopo la verifica pagina2 reindirizza a pagina3 in caso sia tutto ok (pagina3 conterra' un messaggio di avvenuto inserimento o quello che ti pare) e reindirizza a pagina1 se c'e' qualche problema. Nel secondo caso deve in qualche modo dire "hey pagina1 ti rimando indietro sto tizio perche' e' successo questo e quello".

    Quest'ultima parte si puo' fare in diversi modi, ma se vuoi mantenere il piu' possibile la tua struttura, puoi molto semplicemente rimandare indietro tutti i dati inviati dal form tramite sessioni. Cioe' proprio brutalmente copi ogni campo del tuo form in una variabile di sessione, e in pagina1 invece che estrarre quei dati da $_POST li prendi da $_SESSION.

  7. #17
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762


    Non potevi essere più chiaro! Ah queste sono le spiegazioni che desidero!!

    Ok. Data la struttura logica in 4 punti di cui gli ultimi due variabili a seconda che l'operazione vada a buon fine oppure no.

    Stabilito il fatto che in caso vada tutto bene, l'utente va a pagina3 e vede "Bravo..tutto apposto".

    Passiamo al punto in cui l'utente sbaglia. In caso di errore, dovrà essere pagina2 a riportare indietro l'utente a pagina1...e nel mio caso...dato che voglio far visualizzare la modale con la scritta di errore E anche far riapparire il testo sbagliato nel campo apposito...come posso fare?

    Cioè, non riesco ad arrivare alla parte di codice di pagina2 che rimanda a pagina1 con l'errore in modale e il dato errato nell'input.

    Credo sia l'ultima richiesta ..potresti farmi un breve esempio di codice? Sia di pagina2 che trova l'errore e di pagina1 che visualizza la modale e riporta il dato errato nell'input?

    Ti ringrazio davvero tantissimo!!!!!!

  8. #18
    Originariamente inviato da wartpro
    dato che voglio far visualizzare la modale con la scritta di errore E anche far riapparire il testo sbagliato nel campo apposito...come posso fare?
    Mi sembrava di averlo gia' detto diverse volte:

    - pagina2 riceve i valori via POST
    - pagina2 li controlla, se c'e' qualche problema salva tutti i dati che ha preso tramite POST in variabili di sessione e redirige a pagina1
    - pagina1 ANZICHE' prendere i data da POST (come fa adesso nella situazione da "tutto in una pagina") li prende dalla sessione e ci fa esattamente quello che ci fa ora.

  9. #19
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Ho capito ma il codice come dev'essere strutturato, così:

    pagina2

    Codice PHP:
    <?php
    session_start
    ();

    $email $_POST['email']; // Dato passato..
    $_SESSION['email'] = $email// Dato passato in sessione..

    $modale "codice html per la modale di errore..";

    if (
    $email != "diversa da preg_match") {

       
    header("Location:pagina1.php"); // e fin qui ci siamo..ritorna indietro..

       // E come la passo la modale e il dato sbagliato? Questo non so fare..

    }

    session_destroy();
    ?>

    Dato l'errore..si ritorna a pagina1

    Codice PHP:
    <?php
    session_start
    ();
    ?>

    // Non so come riportare la modale da far apparire e il dato sbagliato da far riapparire..

    <form action="pagina2.php">
    // vari input
    </form>

    <?php
    session_destroy
    ();
    ?>

  10. #20
    Scusami in pagina1 ci sono gia' i controlli, giusto? Solo che ora funzionano su $_POST, giusto? Se e' cosi' allora devi fare in modo che pagina1 i dati anziche' da POST li prenda da SESSION.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.