Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892

    problema stranissimo con form...

    Dunque, scusate il disturbo ma ho un prblema stranissimo...


    Allora: io ho preparato un data entry con un semplce form html e una pagina php che scrive i dati su db Mysql...

    Fin qui tutto ok...

    Il problema è questo: ho previsot un campo select con possibilità di selezione multipla per scegliere contemporaneamente più opzioni e scriverle sul db.
    Il fatto è che lui mi scrive SOLTANTO L'ULTIMA OPZIONE SELEZIONATA E NON TUTTE LE ALTRE.

    Perché?


    Ecco i codici:

    questa è la parte del form con il campo select multiple:

    <select size="1" name="interessate" multiple>
    <option>opzione 1</option>
    <option>opzione 2</option>
    <option>opzione 3</option>
    <option>opzione 4</option>
    <option>opzione 5</option>
    <option>opzione 6</option>
    <option>opzione 7</option>
    </select>

    e questa è la pagina php di scrittura su db:



    <?php

    $host = 'localhost';
    $user = 'user';
    $password = 'password';
    $database = 'nomedb';

    $id=$_SESSION['id'];


    $db = mysql_connect($host, $user, $password)

    or die ("Impossibile connettersi al server $host");

    mysql_select_db($database, $db)

    or die ("Impossibile connettersi al database $database");


    {

    $query = "select id, durata, interessate, importocorso, importoaggiudicato, importoaggiudicatoiva, scadenza, risparmi from determinazioni where id=$id";

    $dbResult = mysql_query($query, $db);



    $durata=$_REQUEST['durata'];
    $interessate=$_REQUEST['interessate'];
    $importocorso=$_REQUEST['importocorso'];
    $importoaggiudicato=$_REQUEST['importoaggiudicato'];
    $importoaggiudicatoiva=$_REQUEST['importoaggiudicatoiva'];
    $scadenza=$_REQUEST['scadenza'];
    $risparmi=$_REQUEST['risparmi'];


    $query = "update determinazioni set
    durata=\"$durata\","
    . " interessate=\"$interessate\","
    . " importocorso=\"$importocorso\","
    . " importoaggiudicato=\"$importoaggiudicato\","
    . " importoaggiudicatoiva=\"$importoaggiudicatoiva\","
    . " scadenza=\"$scadenza\","
    . " risparmi=\"$risparmi\""
    . " where id=$id";


    $dbResult = mysql_query($query, $db) OR DIE (mysql_error());

    }

    {
    echo '<center>';
    print("La determinazione è stata correttamente registrata");
    echo '
    ';
    echo '
    ';

    }

    {

    mysql_close($db);

    }

    ?>


    Perché non funzia?

    Grazie a chi vorrà aiutarmi...

    Franz

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    scusa ma perchè mettere un campo multiple se poi ti interessa solo l'ultimo valore immesso??
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    no, no, non mi interessa l'ultimo valore immesso: a me interessano tutti, ma mi viene scritto solo l'ultimo della selezione mltipla...

    Il problema è proprio questo! Non capisco perché non vengano scritti tutti...

  4. #4
    Originariamente inviato da franz79
    no, no, non mi interessa l'ultimo valore immesso: a me interessano tutti, ma mi viene scritto solo l'ultimo della selezione mltipla...

    Il problema è proprio questo! Non capisco perché non vengano scritti tutti...
    usa un array come nome.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Originariamente inviato da piero.mac
    usa un array come nome.
    puoi fare l'esempio Xfavore?

    [Xfranz79]

    complimenti per il titolo!
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    Scusa piero.mac, puoi farmi un esempio?

    Non capisco come costruire l'array...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    Io avrei provato così, ma non funzia...

    $interessate=array();
    foreach ($_REQUEST['interessate'])
    {
    print($interessate);
    }

    come posso fare?

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    nel form usi:
    <select size="1" name="interessate[]" multiple>

    nella pagina php fai:
    print_r($_POST['interessate']);
    think simple think ringo

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    adesso funziona, ma mi restituisce:
    Array ( [0] => opzione1 [1] => opzione2 [2] => opzione3 [3] => opzione 4 )

    come faccio per farmi scrivere solo le opzioni scelte?

    Scusa la mia durezza...

  10. #10
    Originariamente inviato da franz79
    adesso funziona, ma mi restituisce:
    Array ( [0] => opzione1 [1] => opzione2 [2] => opzione3 [3] => opzione 4 )

    come faccio per farmi scrivere solo le opzioni scelte?

    Scusa la mia durezza...
    Prima ti ho risposto mentre stavo uscendo... ora rileggo con calma... Non e' che io si a un mostro di html, ma mi pare che la select ti faccia scegliere una cosa tra molte. Quindi ne avrai sempre e solo una, l'ultima selezionata.

    Il discorso dell'array come nome vale per il tag INPUT TYPE=CHECKBOX.

    In questo caso puoi fare selezioni multiple che invierai con un array. Ma e' un problema di html e non di PHP.

    Ti posto un esempio: nome del file pippo.php

    Codice PHP:
    <?
    if(isset($_POST['interessate'])) {
    echo 
    "<pre>";
    print_r($_POST['interessate']);
    echo 
    "</pre>";
    }
    ?>

    <form action="pippo.php" method="post">
    <INPUT type=checkbox name="interessate[]" value=1> opzione 1
    <INPUT type=checkbox name="interessate[]" value=2> opzione 2
    <INPUT type=checkbox name="interessate[]" value=3> opzione 3
    <INPUT type=checkbox name="interessate[]" value=4> opzione 4
    <INPUT type=checkbox name="interessate[]" value=5> opzione 5
    <input type = "submit">
    </form>
    Verranno settati nell'array $_POST['interessate'] i box ceccati. Per esempio settiamo le opzioni 1 3 5.

    Array
    (
    [0] => 1
    [1] => 3
    [2] => 5
    )

    Quindi scorrendo l'array con un foreach tiri fuori i dati che ti servono.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.