Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    410

    Messaggio conferma a seguito di invio dati a database

    Ciao a tutti prima di inserire il codice vi spiego il problema sperando di riuscire a spiegarmi meglio (sarò schematico...spero !)

    Ho un form nel quale vengono inseriti vari campi,

    Al momento del submit (ossia dopo aver compilato i campi quando l'utente preme invia dati) devo eseguire fondamentalmente 3 operazioni

    1) salvataggio dati su database;
    2) non deve essere più visibile il form di compilazione;
    2) comparsa messaggio tipo "Annuncio inserito correttamente";

    le righe di comando per il il salvataggio su database le ho già fatte e sono funzionanti, il mio problema è che il form se lo imposto con questa action:

    <form action='<?php echo $_SERVER['PHP_SELF']?>' method='post'>

    rimane sulla stessa pagina e dunque visualizza il form mentre vorrei farlo sparire.

    se la action la faccio così:

    <form action='atroscript.php' method='post'>

    devo passare delle variabili si sessione ad altroscript.php però i valori di queste variabili provengono dall'array $_POST (ad esempio $_POST['titolo']) e dunque questo array non mi passa più i dati nel passaggio a altroscript.php


    spero che qualcuno ci abbia capito qualcosa e possa darmi una mano

    ciao ragazzi ciao

  2. #2
    Dal poco che ho capito, il titolo non sembra coerente con quello che richiedi.
    Mi sembra che le domande siano due.
    Passo a rispondere alla prima.
    rimane sulla stessa pagina e dunque visualizza il form mentre vorrei farlo sparire.
    La pagina che riceve i dati in post, deve processare questi dati ed inserirli nel DB.
    Dopo il comando che esegue la query puoi stampare un messaggio di cortesia e quindi effettuare il redirect.
    Il redirect ad altra pagina lo puoi fare sia in PHP con la funzione HEADER(), oppure in javascript.
    Tieni conto che la funzione PHP agisce solo se non ci sono output HTML nella pagina, per cui se non sai come gestire ti consiglio javascript (ma questo non è il forum adatto).

    Seconda domanda (più o meno intrinseca).
    devo passare delle variabili si sessione ad altroscript.php però i valori di queste variabili provengono dall'array $_POST (ad esempio $_POST['titolo']) e dunque questo array non mi passa più i dati nel passaggio a altroscript.php
    Secondo me hai strutturato male la form e le variabili che ti servono per farla funzionare.
    Nella action vanno scritte le variabili $_GET.
    Ti porto un esempio: hai una form di modifica di un record del DB.
    Nella action vai a scrivere qualcosa come:
    Codice PHP:
    <form action="modifica.php?record=1234"
    Il valore passato in GET ti serve come riferimento, e sei te che lo programmi come tale.
    I parametri passati dalla form (in POST) invece, sono quelli dell'utenza che se ne frega di sapere qualche record modificherà, mentre gli interessa solo sapere come modificare i dati specifici di quel rigo del DB.
    Se non vuoi lavorare con il GET, allora puoi inserire il numero del record da modificare con un input HIDDEN, ma questo è un discorso diverso!

    Concludo dicendo: ho poche informazioni per darti un consiglio specifico, ma dalle poche che si hanno, la sensazione è che stai facendo qualche errore di concetto nell'impostazione della form!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Come ha detto alcio74 puoi indirizzare il form a PHP_SELF, e dopo il comando che esegue la query puoi stampare un messaggio di cortesia e quindi effettuare il redirect.
    Il redirect puo essere automatico oppure affidato ad un link che deve cliccare l'utente.

    se la action la faccio così:

    <form action='atroscript.php' method='post'>

    devo passare delle variabili si sessione ad altroscript.php però i valori di queste variabili provengono dall'array $_POST (ad esempio $_POST['titolo']) e dunque questo array non mi passa più i dati nel passaggio a altroscript.php
    qui non si capisce...
    semplicità ... al sol nominarla sembra svanire

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    410
    Ragazzi scusate mi rendo conto che non era chiaro però il problema era un po contorto da spiegare. la soluzione del costrutto header mi sembra ottima adesso ci lavoro un po vedo se riesco a risolvere, non conoscevo quella funzione. se risolvo vi scrivo la soluzione

  5. #5
    Ricordati che header, quando lanciato, non vuole assolutamente che sia stato stampato alcun output.
    Tu però vuoi stampare un messaggio di cortesia..... quindi....
    o usi OB_START() e funzioni relative per bufferizzare l'output HTML della tua pagina, da inviare in un secondo momento (cioè dopo che l'header è stato inviato), oppure usi un redirect in javascript con un timeout per permettere la lettura del messaggio di cortesia!
    Oppure, non lanci alcun messaggio di cortesia.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    410
    Mh dunque io voglio che se l'inserimento dati è andata a buon fine appaia un messaggio di cortesia e successivamente spostare l'utente verso una pagina diversa da quella del modulo perchè ovviamente lo ha appena inviato e non devo presentargliene un altro da compilare

  7. #7
    È esattamente quello che ti ho scritto io.
    Cosa ti serve?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    410
    alcio74 perfetto ho usato l'header e funziona alla perfezione. per la cronaca posto la parte di codice utilizzata... c'è un controllo su delle variabili che precedentemente vengono settate a 1 in caso di errore ed a 0 in caso di non errore, se passa questo controllo invio i dati al database poi tramite header mi sposto su un altra pagina con messaggio di cortesia ed il menù per rientrare nel sito

    codice:
    if (!$titolo_errore && !$categoria_errore && !$descrizione_errore && !$prezzo_errore && !$privato_azienda_errore)
    		{
    		$insert = mysql_query ( "INSERT INTO annunci (titolo, categoria, descrizione, anno_fabbricazione, prezzo, privato_azienda) VALUES ('$valori[0]','$valori[1]','$valori[2]','$valori[3]','$valori[4]','$valori[5]')",$db);
    		header("Location: /annuncio_inserito.php"); 
    		}
    ciao grazie ancora

  9. #9
    La sua soddisfazione è il nostro miglior premio!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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 © 2024 vBulletin Solutions, Inc. All rights reserved.