Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    33

    ListBox (selezione multipla)

    Ciao a tutti ho questi 2 script:

    Codice PHP:

    <?php
                $date 
    = new DateTime();    
                
    $annoCorrente $date->format('Y');
            
    ?>
            
            <h2>Tutti i campi sono da compilare!</h2>
            

            <form method="post" action="?indice=201">
            <table>
            <tr><td>Email</td>
                <td><input type="text" name="email" size="40"></td>
            </tr>
            <tr><td> Cognome </td>
                <td><input type="text" name="cognome" size="40"></td>
            </tr>
            <tr><td> Nome </td>
                <td><input type="text" name="nome" size="40"></td>
            </tr>
            <tr><td> Indirizzo </td>
                <td><input type="text" name="indirizzo" size="40"></td>
            </tr>
            <tr><td> Nap </td>
                <td><input type="text" name="nap" size="10"></td>
            </tr>
            <tr><td> Domicilio </td>
                <td><input type="text" name="domicilio" size="40"></td>
            </tr>
            <tr><td> Nazione </td>
                <td><input type="text" name="nazione" size="40"></td>
            </tr>
            <tr><td> Anno di nascita </td>
                <td><select name="anno">
                            <option value="0">...</option>
                            <?php
            
                                
    for ($i=0;$i<=100;$i++){
                                    echo 
    "<option value=\" ".$annoCorrente." \">".$annoCorrente."</option>";
                                    
    $annoCorrente -= 1;    
                                }
                            
    ?>
                    </select>
                </td>
            </tr>
            <tr><td> Sesso </td>
                <td>Uomo<input type="radio" name="sesso" value="m">
                    Donna<input type="radio" name="sesso" value="f">
                </td>
            </tr>
            <tr><td> Gruppo </td>
                <td>
                    <select name="gruppo[]" multiple="multiple">
                    <?php
                        $sql 
    "SELECT id_gruppo, nome_gruppo FROM gruppi";
                        
    $res mysql_query($sql) or die("Errore nella select");
                        while (
    $row mysql_fetch_array($res)){
                                
                                    echo 
    "<option value=\"gruppo[".$row["id_gruppo"]."]\">".$row["nome_gruppo"]."";
                                
                        }
                        
                    
    ?>
                </td>
            </tr>
            <tr><td> Lingua </td>
                <td>    
                    <?php
                          $sel 
    "SELECT id_lingua, lingua FROM lingue";
                          
    $res mysql_query($sel) or die("Errore nella select");
                          while(
    $arr mysql_fetch_array($res)) {
                             echo 
    $arr[1]."<input type='radio' name='linguaNuovoIscritto' value='".$arr[0]."'>";
                          }
                      
    ?>

                </td>
            </tr>
                            
            
            <tr><td><input type="submit" name="submit" value="Invia"></td></tr>
            </form>
            </table>
    Codice PHP:

    <?php
        
            $data 
    date("Y-m-d");
        
        
    //pulitura dei campi da stringhe pericolose
            
    $email trim(stripslashes($_POST['email']));
            
    $cognome trim(stripslashes($_POST['cognome']));
            
    $nome trim(stripslashes($_POST['nome']));
            
    $indirizzo trim(stripslashes($_POST['indirizzo']));
            
    $nap trim(stripslashes($_POST['nap']));
            
    $domicilio trim(stripslashes($_POST['domicilio']));
            
    $nazione trim(stripslashes($_POST['nazione']));
            
    $anno $_POST['anno'];
            
    $sesso $_POST['sesso'];
            
    $gruppo $_POST['gruppo'];
                foreach (
    $gruppo as $valore){
                
    //    echo $valore;
                
    }
            
    $linguaNuovoIscritto $_POST['linguaNuovoIscritto'];
            
            
    $email mysql_real_escape_string($email);
            
    $cognome mysql_real_escape_string($cognome);
            
    $nome mysql_real_escape_string($nome);
            
    $indirizzo mysql_real_escape_string($indirizzo);
            
    $nap mysql_real_escape_string($nap);
            
    $domicilio mysql_real_escape_string($domicilio);
            
    $nazione mysql_real_escape_string($nazione);
            
            
    $email htmlentities($email);
            
    $cognome htmlentities($cognome);
            
    $nome htmlentities($nome);
            
    $indirizzo htmlentities($indirizzo);
            
    $nap htmlentities($nap);
            
    $domicilio htmlentities($domicilio);
            
    $nazione htmlentities($nazione);

        
        
    //controllo che tutti i campi siano stati compilati
            
    if (( $email == "" ) || ( $cognome == "" ) || ( $nome == "" ) || ( $indirizzo == "" ) || ( $nap == "" ) || ( $domicilio == "" ) || ( $nazione == "" ) || ( $anno == "" ) || ( $sesso == "" ) || ( $gruppo == "" ) || ($linguaNuovoIscritto == "" )) 
            {
                echo 
    "<h3>Errore!</h3>
    I campi sono obbligatori. Deve compilare tutti i campi per continuare

                La preghiamo di <A HREF=\"javascript:history.go(-1)\">tornare indietro e correggere</A>. Grazie"
    ;
            }
        
    //controllo campo email richiamando la funzione
            
    else if ((ControlloEmail($_POST['email']))== false)
            {
                echo 
    "Email non valida o non inserita!";
            }
        
    //controllo che il campo cognome sia di soli caratteri alfanumerici richiamando la funzione
            
    else if ((ControlloCognome($_POST['cognome']))== false)
            {
                echo 
    "Cognome non valido o campo non compilato!";
            }
        
    //controllo che il campo nome sia di soli caratteri alfanumerici richiamando la funzione
            
    else if ((ControlloNome($_POST['nome']))== false)
            {
                echo 
    "Nome non valido o campo non compilato!";
            }
        
    //controllo che il campo nap sia numerico richiamando la funzione
            
    else if ((ControlloNap($_POST['nap']))== false
            {
                echo 
    "Nap non valido o non inserito!";
            }
        
    //controllo che il campo domicilio sia di soli caratteri alfanumerici richiamando la funzione
            
    else if ((ControlloDomicilio($_POST['domicilio'])) == false)
            {
                echo 
    "Domicilio non valido o campo non compilato!";
            }
        
    //controllo che il campo nazione sia di soli caratteri alfanumerici richiamando la funzione
            
    else if ((ControlloNazione($_POST['nazione'])) == false)
            {
                echo 
    "Nazione non valida o campo non compilato!";
            }
            else
            {
        
    //inserisco i dati completati nel formulario all'interno della banca dati
                
    $query "insert into newsletter" "(email, cognome_nl, nome_nl, indirizzo, nap, domicilio, nazione, anno_nascita, sesso, data_iscrizione, id_lingua)" .
                
    "VALUES('" $_REQUEST['email'] . "', '" $_REQUEST['cognome'] . "', '" $_REQUEST['nome'] . "', '" $_REQUEST['indirizzo'] . "', '" $_REQUEST['nap'] . "', '" $_REQUEST['domicilio'] . "', '" $_REQUEST['nazione'] . "', '" $_REQUEST['anno'] . "', '" $_REQUEST['sesso'] . "', '" $data "', '" $_REQUEST['linguaNuovoIscritto'] . "')";
                
                if(!
    mysql_query($query$db))
                {
                print(
    "Attenzione, impossibile inserire il record");
                }
            else
                {
                print(
    "Hai completato il formulario senza problemi. I dati sono stati registrati.");
                }
        
        
    //recupero l'id appena inserito        
                
    $id_newsletter mysql_insert_id();
                
                
    $query2 "insert into news_gruppi" "(id_newsletter, id_gruppo)" "VALUES('" $id_newsletter "', '" $_REQUEST['gruppo'] . "')";
                
                        
            if(!
    mysql_query($query2$db))
                {
                print(
    "Attenzione, impossibile inserire il record");
                }
            else
                {
                print(
    "Hai completato il formulario senza problemi. I dati sono stati registrati.");
                }
            
            
            
            
    mysql_close($db);
            }

        
    ?>

    Nella form ci sono campi di 2 tabelle.
    Per inserire i dati ho fatto 2 insert per ogni tabella con nomi diversi ($query e $query2). Il problema è che nella tabella iscritti mi inserisce tutto mentre nella tabella news_gruppi(tabella ponte tra iscritti e gruppi) mi inserisce l'id che recupero nella tabella iscritti ma niente nel campo id_gruppo.

    Come faccio a fare in modo che mi inserisca nel campo della tabella il o i gruppi scelti dalla listbox?

    Nella tabella ponte ho l'id dell'iscritto e l'id del gruppo..

    esempio:
    id_newsletter id_gruppo
    1 4
    1 5
    2 1
    3 1
    4 2
    5 3
    5 6
    etc...

    spero di essere stato chiaro...

    Grazie intanto

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    33
    Potete anche eliminare questa discussione... ho risolto

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.