Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    42

    Radiobutton con alternativa inserita dall'utente

    Salve a tutti,

    sto costruendo un questionario in PHP. Fra le domande proposte ce ne sono alcune dove bisogna scegliere un'alternativa fra più opzioni. Ho quindi utilizzato i radiobutton, e tramite un form i dati viengono inviati a una pagina record.php dove, tramite il metodo POST, l'opzione selezionata viene recuperata.

    La cosa funzionava benissimo... fino a che, fra le varie opzioni, non mi è stato chiesto di aggiungere una casella del tipo "Altro: specificare", dove l'intervistato può lui stesso scrivere la risposta se le alternative disponibili non lo soddisfano.

    Se abbiamo ad esempio il radiobutton "question1", la variabile $_POST['question1'] assumerà valore "1" se è stata selezionata la prima opzione, "2" per la seconda e così via... ma, se viene selezionata l'ultima opzione, quella il cui testo è scritto direttamente dall'utente, allora $_POST['question1'] dovrà contenere non "1" o "2", ecc., bensì il testo scritto dall'utente.

    Il codice è, in maniera molto semplificata, così:
    codice:
    <form method="post" action="record.php">
        <input type="radio" name="question1" value="1" id="option1">
        <input type="radio" name="question1" value="2" id="option2">
        <input type="radio" name="question1" value="3" id="option3">
        <input type="text" name="question1" id="option4">
    </form>
    Il problema è che se l'utente scrive qualcosa nell'area di testo, allora $_POST['question1'] conterrà effettivamente quanto scritto dall'utente. Ma se l'utente seleziona le altre opzioni, all'interno di $_POST['question1'] non ci saranno i valori numerici 1, 2, ecc. ma... nulla: la variabile resta vuota!!!

    Qualcuno ha qualche idea su cosa fare?

  2. #2
    Puoi fare una cosa del genere:

    Codice PHP:
    <?php
    if (isset($_POST['submit'])) {
        echo 
    $_POST['question'][0];
    }
    ?>

    <form method="post" action="record.php">
        <input type="radio" name="question[]" value="1" />
        <input type="radio" name="question[]" value="2" />
        <input type="radio" name="question[]" value="3" />
        <input type="text" name="question[]" />
        <input type="submit" name="submit" value="submit" />
    </form>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Secondo me oltre alle prime tre opzioni di scelta, dovresti aggiungerne un'altra cosi:

    codice:
    <form method="post" action="record.php">     
    <input type="radio" name="question1" value="1" id="option1">     
    <input type="radio" name="question1" value="2" id="option2">     
    <input type="radio" name="question1" value="3" id="option3">
    
    <input type="radio" name="question1" value="4" id="option4">     
    <input type="text" name="question1text" id="option4text"> 
    
    </form>
    Insomma associ all'opzione 4 un campo di tipo text, potresti fare poi il controllo che se ha selezionato la 4a opzione debba avere inserito il valore...o qualcosa del genere, comunque il tuo problema più che legato a PHP mi sembra legato lato client a javascript e di come far scegliere le opzioni all'utente

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    42
    Originariamente inviato da satifal
    Puoi fare una cosa del genere:
    Originariamente inviato da camionistaxcaso
    Insomma associ all'opzione 4 un campo di tipo text, potresti fare poi il controllo che se ha selezionato la 4a opzione debba avere inserito il valore...o qualcosa del genere, comunque il tuo problema più che legato a PHP mi sembra legato lato client a javascript e di come far scegliere le opzioni all'utente
    Grazie a entrambi per le risposte
    camionistaxcaso, forse il metodo che mi suggerisci è quello più immediato e semplice... proverò a fare così!

  5. #5
    Originariamente inviato da pauli
    Grazie a entrambi per le risposte
    camionistaxcaso, forse il metodo che mi suggerisci è quello più immediato e semplice... proverò a fare così!
    Più immediato e semplice di questo?

    Codice PHP:
    $_POST['question'][0]; 
    ...interessante
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    42
    Originariamente inviato da satifal
    Più immediato e semplice di questo?

    Codice PHP:
    $_POST['question'][0]; 
    ...interessante
    Mmm.... c'era un motivo preciso per cui non volevo adottare questa soluzione, ma riflettendoci sopra mi sono accorto che in realtà va bene anche per il mio caso! Direi che hai ragione!

  7. #7
    Si gliel'appoggio ankio a satifal mi sa che non avevo capito bene il problema. Però potresti fare un radiobutton "Altro..." che quando lo attivi il box di testo ti passa da disabilitato ad abilitato, oppure che quando metti il cursore nel box di testo ti si attiva il radiobutton "Altro..."

  8. #8
    Originariamente inviato da camionistaxcaso
    Si gliel'appoggio ankio a satifal mi sa che non avevo capito bene il problema. Però potresti fare un radiobutton "Altro..." che quando lo attivi il box di testo ti passa da disabilitato ad abilitato, oppure che quando metti il cursore nel box di testo ti si attiva il radiobutton "Altro..."
    Questa, invece, te l'appoggio io
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.