Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema con multiple select

    Ciao a tutti.
    Sto realizzando un form di registrazione dove alcuni dati sono obbligatori e altri facoltativi. Tra i facoltativi c'è l'indicazione dei propri hobbies e interessi, da selezionare in un multiple select.
    Il mio problema è che , se l'utente non seleziona alcun hobby, l'array risulta undefined e mi viene segnalato come errore notice. Nella query mysql, inoltre, il campo hobbies viene popolato con l'istruzione:

    implode(", ", $_POST['hobbies'])

    e nel caso di array vuoto mi viene segnalato un errore di tipo warning.

    E' possibile far risultare selezionata di default l'opzione "Nessuno", nel caso in cui l'utente non selezioni alcuna voce?

    Questa è la mia select:
    <select name="hobbies[]" size="6" multiple>

    <option value="Sport"<?php
    if (in_array("Sport", $hobbies)) {
    echo " selected";
    } ?>>Sport</option>
    <option value="Cinema"<?php
    if (in_array("Cinema", $hobbies)) {
    echo " selected";
    } ?>>Cinema</option>
    <option value="Musica"<?php
    if (in_array("Libri", $hobbies)) {
    echo " selected";
    } ?>>Musica</option>
    <option value="Libri"<?php
    if (in_array("Animali", $hobbies)) {
    echo " selected";
    } ?>>Libri</option>
    <option value="Internet"<?php
    if (in_array("Internet", $hobbies)) {
    echo " selected";
    } ?>>Internet</option>

    da aggiungere eventualmente:

    <option value="Nessuno"<?php
    if (... non so cosa mettere ...) {
    echo " selected";
    } ?>>Nessuno</option>


    </select>

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Prima di popolarlo con la query potresti dichiararlo così:

    Codice PHP:
    $hobbies = array() ; 
    così non dovrebbe darti errore anche se poi la query non gli attribuisce dei valori
    Errare humanum est, perseverare ovest

  3. #3
    Grazie, ma ho provato ad inserire l'istruzione che mi hai indicato prima della query, ma il risultato è lo stesso.

  4. #4
    Ho risolto con una if:

    if(!empty($_POST['hobbies'])) {

    query che inserisce l'array degli hobbies nel campo hobbies;

    } else {

    query che inserisce "nessuno" nel campo hobbies;

    }
    ...

    Mi interesserebbe comunque sapere se è possibile impostare la select in modo che, in assenza di una selezione, venga selezionata in automatico la voce "nessuno".

    :master:

  5. #5
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Originariamente inviato da sakuchan
    Mi interesserebbe comunque sapere se è possibile impostare la select in modo che, in assenza di una selezione, venga selezionata in automatico la voce "nessuno".
    Nel caso che non sia stata effettuata una selezione il tuo codice inserisce il valore "nessuno" nel campo "hobbies", quindi basterà verificarlo e procedere ugualmente a come hai già fatto. Come prima o ultima "option" potresti mettere...

    Codice PHP:
    <option value="Sport" <?php if (in_array("nessuno"$hobbies)) echo " selected"?>
    >Nessuno</option>
    Non mancando di correggere il "size" della "select" aumentandolo a "7"
    Errare humanum est, perseverare ovest

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.