Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Form informazioni

  1. #1

    Form informazioni

    Salve a tutti,
    Sul mio sito posseggo un form per la richiesta di preventivi. Tra i campi da compilare vi è anche il campo regione, comune e provincia. Poichè è un elenco dinamico, le voci di queste tre selezioni sono registrate in un db.

    L'utente compila questo form e io ricevo una mail con i dati inseriti, ad eccezione delle tre scelte elencate prima, di quelle ricevo solo l'id che corrisponde alla determinata regione, comune o provicia a cui fa riferimento la voce nel db! Vorrei poter ricevere direttamente l'opzione selezionata invece dell'id

    Ecco il codice PHP dell'elenco dinamico
    Codice PHP:
    <?php
    class SelectList{        protected $conn;            public function __construct()        {            $this->DbConnect();        }            protected function DbConnect()        {            include "db_config.php";                        $this->conn mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");            mysql_select_db($db,$this->conn) OR die("Impossibile selezionare il database $db");                        return TRUE;        }                public function ShowRegioni()        {            $sql "SELECT * FROM regioni";            $res mysql_query($sql,$this->conn);            $regioni '<option value="0">Scegli...</option>';                            while($row mysql_fetch_array($res))                {                    $regioni .= '<option value="' $row['id_reg'] . '">' utf8_encode($row['nome_regione']) . '</option>';                }                            return $regioni;        }                public function ShowProvince()        {            $sql "SELECT * FROM province WHERE id_reg=$_POST[id_reg]";            $res mysql_query($sql,$this->conn);            $province '<option value="0">Scegli...</option>';                            while($row mysql_fetch_array($res))                {                    $province .= '<option value="' $row['id_pro'] . '">' utf8_encode($row['nome_provincia']) . '</option>';                }                            return $province;        }                public function ShowComuni()        {            $sql "SELECT * FROM comuni WHERE id_pro=$_POST[id_pro]";            $res mysql_query($sql,$this->conn);            $comuni '<option value="0">Scegli...</option>';                            while($row mysql_fetch_array($res))                {                    $comuni .= '<option value="' $row['id_com'] . '">' $row['cap'] . ' - ' utf8_encode($row['comune']) . '</option>';                }                            return $comuni;        }}
    ?>
    Ecco quello che invia tutto per email
    Codice PHP:
    <?php    $messaggio="Richiesta preventivo da sito internet \nNome: " $_POST['nome'] . " \nCognome: " $_POST['cognome'] . " \nData di nascita " $_POST['nascita'] . " \nTipo di lavoro: " $_POST['lavoro'] . " \nRegione: " $_POST['regione'] . " \nProvincia: " $_POST['provincia'] . " \nComune: " $_POST['comune'];    mail"xxxx@xxxxx.com""Invio email da: " $_POST['nome'], $messaggio );?>
    Come posso risolvere il problema?
    Ringrazio in anticipo per eventuali aiuti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    identa il codice e forse qualcuno ti da una mano

  3. #3
    Quote Originariamente inviata da zacca94 Visualizza il messaggio
    identa il codice e forse qualcuno ti da una mano
    Che vuoi dire?

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Riesci a leggere il codice che hai postato?

    Sistemalo in modo che sia leggibile

  5. #5
    Purtroppo non riesco a modificare il primo post... Lo riporto qui sotto sistemato
    Scusate per la pessima formattazione nel primo post

    Codice elenco PHP dinamico
    codice:
    <?php
    
    
    class SelectList
    {
        
        protected $conn;
        
            public function __construct()
            {
                $this->DbConnect();
            }
        
            protected function DbConnect()
            {
                include "db_config.php";
                
                $this->conn = mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");
                mysql_select_db($db,$this->conn) OR die("Impossibile selezionare il database $db");
                
                return TRUE;
            }
            
            public function ShowRegioni()
            {
                $sql = "SELECT * FROM regioni";
                $res = mysql_query($sql,$this->conn);
                $regioni = '<option value="0">Scegli...</option>';
                
                    while($row = mysql_fetch_array($res))
                    {
                        $regioni .= '<option value="' . $row['id_reg'] . '">' . utf8_encode($row['nome_regione']) . '</option>';
                    }
                    
                return $regioni;
            }
            
            public function ShowProvince()
            {
                $sql = "SELECT * FROM province WHERE id_reg=$_POST[id_reg]";
                $res = mysql_query($sql,$this->conn);
                $province = '<option value="0">Scegli...</option>';
                
                    while($row = mysql_fetch_array($res))
                    {
                        $province .= '<option value="' . $row['id_pro'] . '">' . utf8_encode($row['nome_provincia']) . '</option>';
                    }
                    
                return $province;
            }
            
            public function ShowComuni()
            {
                $sql = "SELECT * FROM comuni WHERE id_pro=$_POST[id_pro]";
                $res = mysql_query($sql,$this->conn);
                $comuni = '<option value="0">Scegli...</option>';
                
                    while($row = mysql_fetch_array($res))
                    {
                        $comuni .= '<option value="' . $row['id_com'] . '">' . $row['cap'] . ' - ' . utf8_encode($row['comune']) . '</option>';
                    }
                    
                return $comuni;
            }
    }
    
    
    ?>
    Codice che invia tutto per mail
    codice:
    <?php
        $messaggio="Richiesta preventivo da sito internet \nNome: " . $_POST['nome'] . " \nCognome: " . $_POST['cognome'] . " \nData di nascita " . $_POST['nascita'] . " \nTipo di lavoro: " . $_POST['lavoro'] . " \nRegione: " . $_POST['regione'] . " \nProvincia: " . $_POST['provincia'] . " \nComune: " . $_POST['comune'];
        mail( "xxx@xxx.xx", "Invio email da: " . $_POST['nome'], $messaggio );
    ?>

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Nelle tue ShowXXX(), invece di mettere come value l'id, metti direttamente il nome.
    es:
    Codice PHP:
    $regioni .= '<option value="' $row['nome_regione'] . '">' utf8_encode($row['nome_regione']) . '</option>'
    Ovviamente controlla che queste funzioni non siano usate altrove e se c'è bisogno di codificare
    $row['nome_regione']

  7. #7
    Quote Originariamente inviata da boots Visualizza il messaggio
    Nelle tue ShowXXX(), invece di mettere come value l'id, metti direttamente il nome.
    es:
    Codice PHP:
    $regioni .= '<option value="' $row['nome_regione'] . '">' utf8_encode($row['nome_regione']) . '</option>'
    Ovviamente controlla che queste funzioni non siano usate altrove e se c'è bisogno di codificare
    $row['nome_regione']
    Prima di tutto ti ringrazio per l'aiuto boots.
    Ieri avevo già provato ad apportare le modifiche che hai suggerito ma senza risultato, una volta che seleziono la regione non compare il comune.
    Suppongo che il problema poi si sposti due righe più sotto, esattamente qui
    codice:
    $sql = "SELECT * FROM province WHERE id_reg=$_POST[id_reg]";
    Bisognerebbe modificare anche questo ma non so in che modo :\

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ma non è più semplice lasciare tutto com'è e fare tre query per riprenderti i valori da passare alla mail?

  9. #9
    Quote Originariamente inviata da boots Visualizza il messaggio
    Ma non è più semplice lasciare tutto com'è e fare tre query per riprenderti i valori da passare alla mail?
    Beh suppongo tu abbia ragione. Io ho semplicemente scaricato questo script dell'elenco dinamico ed applicato al mio form. Purtroppo non saprei produrre la query di cui parli, mi daresti una mano? Oppure è una cosa che ti sottrarrebbe molto tempo?
    Te ne sarei grato se mi aiutassi a risolvere il problema

  10. #10
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    E' veramente banale. Al contratio, quello che volevi fare tu era molto più comlicato.
    Nel tuo script che invia la mail:
    Codice PHP:
    // Solo nel coso tu non lo faccia già
    include "db_config.php";
    $conn mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");
    mysql_select_db($db$conn) OR die("Impossibile selezionare il database $db");


    $comune $regione $provincia '';
    $id = (int)$_POST['id_com'];
    $query mysql_query('SELECT comune FROM comuni WHERE id_com = '$id);
    if(
    $query && mysql_num_rows($query) > 0){
       
    $row mysql_fetch_assoc($query);
       
    $comune $row['comune'];
    }

    $id = (int)$_POST['id_pro'];
    $query mysql_query('SELECT nome_provincia FROM provincie WHERE id_pro = '$id);
    if(
    $query && mysql_num_rows($query) > 0){
       
    $row mysql_fetch_assoc($query);
       
    $provincia $row['nome_provincia'];
    }

    $id = (int)$_POST['id_reg'];
    $query mysql_query('SELECT nome_regione FROM regioni WHERE id_reg = '$id);
    if(
    $query && mysql_num_rows($query) > 0){
       
    $row mysql_fetch_assoc($query);
       
    $regione $row['nome_regione'];
    }

    // Adesso dovesti avere i nomi in $comune, $regione e $provincia 
    PS: Non ti assicuro che non ci siano errori

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