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

    Dichiarazione e gestione radiobutton e checkbox

    Salve.
    Premetto che non conosco il linguaggio PHP. Tramite HTML ho inserito nella mia pagina (questa: http://refusi.altervista.org/invia-refuso ) un form contenente una checkbox e due radiobutton. Considerando che il bottone Invia richiama un file .php (quello che vi allego di seguito), vorrei sapere come faccio a gestire rispettivamente i radiobutton e la checkbox. Come li dichiaro? Che valori prendono? True false? Nella fattispecie, dovrei inserire un "se checkbox è spuntato, allora scrivi nome del radiobutton spuntato".

    Codice PHP:
    <?PHP
    // Processo di recupero dei dati
    $nick $_POST['nick'];
    $email $_POST['email'];
    $titolo $_POST['titolo'];
    $autore $_POST['autore'];
    $trad $_POST['trad'];
    $cedit $_POST['cedit'];
    $isbn $_POST['isbn'];
    $refusi nl2br($_POST['refusi']);
    $typeerr $_POST['COMBO'];
    // Processo di controllo [Opzionale]
    if ($nick == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Nickname[/b]'";
    }
    else
    {
    if (
    $email == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]E-mail[/b]'";
    }
    else
    {
    if (
    $autore == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Autore[/b]'";
    }
    else
    {
    if (
    $titolo == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Titolo libro[/b]'";
    }
    else
    {
    if (
    $cedit == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Editore[/b]'";
    }
    else
    {
    if (
    $isbn == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]ISBN[/b]'";
    }
    else
    {
    if (
    $refusi == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Refusi[/b]'";
    }
    else
    {
    if (
    $typeerr == "nullo")
    {
    print 
    "Errore: &egrave; necessario scegliere la '[b]Tipologia errore[/b]'";
    }
    else
    {
    // Processo di configurazione dell'email
    // [Destinatario, mittente, ecc]
    $sito "<a href='http://refusi.altervista.org'>";
    $sito2 "<a href='http://refusi.altervista.org/invia-refuso'>";
    $mail_to "refusi@altervista.org";
    $mail_from $email;
    $mail_subject "Refusi inviati da parte di $nick";
    $mail_body "

    Refusi inviati da 
    $nick ($email) dal libro [i]$titolo[/i] di $autore pubblicato da $cedit e tradotto da $trad $isbn:

    <font color=#003300>
    $refusi</font>

    Considerato come: 
    $typeerr</p>";
    // Intestazioni HTML
    $mail_in_html "MIME-Version: 1.0
    "
    ;
    $mail_in_html .= "Content-type: text/html; charset=iso-8859-1
    "
    ;
    $mail_in_html .= "From: <$mail_from>";
    // Processo di invio
    if (mail($mail_to$mail_subject$mail_body$mail_in_html))
    {
    print 
    "Grazie per il tuo contributo, [b]$nick[/b]!
    Un amministratore provveder&agrave; a controllare la validit&agrave; dei tuoi refusi prima di inserirli sul sito.

    $sito2 Invia un altro refuso</a> oppure $sito Torna al sito</a>";
    }
    else
    {
    print 
    "Errore";
    }
    }
    }
    }
    }
    }
    }
    }
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    in questo momento non ho il tempo di guardare tutto il codice, quindi ti consiglio nella pagina php di arrivo del form(quella specificata nell'action del form) di scrivere var_dump($_POST);

    In questo modo potresti già cominciare a capire che relazione c'è tra la struttura del form e i dati passati alla pagina di arrivo.

    Quindi potresti provare a modificare la struttura del form in html e vedere come cambia il var_dump di $_POST.

    Non ti fa male cominciare a vedere qualcosa di base di php come ad esempio gli array associativi, visto che $_POST è proprio un array associativo.

  3. #3
    Originariamente inviato da longilineo
    Non ti fa male cominciare a vedere qualcosa di base di php come ad esempio gli array associativi, visto che $_POST è proprio un array associativo.
    Sì, mi sono studiato qualche guida per essere in grado di stilare il codice PHP che ho scritto, ma non essendo il mio lavoro non intendo andare oltre a ciò che mi serve. Purtroppo non ho trovato nessuna guida che tratta la gestione di radiobutton e checkbox, ho già effettuato diverse ricerche prima di ricorrere al forum.

    Grazie per il consiglio riguardo var_dump($_POST);, vedo se riesco ad architettare qualcosa.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    quello che ti dico è di creare un form di prova con radio e checkbox e vedere cosa ti arriva alla pagina definita nella action del form noterai che non cambia nulla rispetto a mandare i dati da un input text o da una select. L'unica differenza ci potrebbe essere con le checkbox, se posti il form e la struttura html oppure meglio ancora il var_dump di $_POST ti possiamo aiutare

  5. #5
    Yep, sto testando proprio ora la modalità che mi hai consigliato.

    vardump restituisce questo:
    codice:
    array(11) { ["nick"]=> string(6) "refusi" ["email"]=> string(21) "refusi@altervista.org" ["titolo"]=> string(3) "asd" ["autore"]=> string(3) "fdg" ["trad"]=> string(7) "dzvfxgb" ["cedit"]=> string(6) "srytgh" ["isbn"]=> string(13) "9770390107909" ["refusi"]=> string(23) "elenco dei vari refusi" ["combo"]=> string(12) "incongruenza" ["check"]=> string(6) "ultimo" ["radio"]=> string(8) "completa" }
    Nel frattempo ho trovato una soluzione al mio problema, anche se poco ortodossa. Con il codice che ho stilato, riesco a capire dall'email ricevuta se la checkbox è spuntata e quale dei due radiobutton è spuntato. Certamente potevo risparmiare molte righe di codice, se avessi conosciuto meglio il mondo della programmazione, ma d'altronde svolge il suo sporco lavoro!

    Codice PHP:
    <?PHP
    // Processo di recupero dei dati
    $nick $_POST['nick'];
    $email $_POST['email'];
    $titolo $_POST['titolo'];
    $autore $_POST['autore'];
    $trad $_POST['trad'];
    $cedit $_POST['cedit'];
    $isbn $_POST['isbn'];
    $refusi nl2br($_POST['refusi']);
    $typeerr $_POST['combo'];
    $checkbox $_POST['check'];
    $radiobutton $_POST['radio'];
    $indirizzimail "refusi@altervista.org\;maxasiago@alice.it";
    // Processo di controllo [Opzionale]
    if ($nick == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Nickname[/b]'";
    }
    else
    {
    if (
    $email == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]E-mail[/b]'";
    }
    else
    {
    if (
    $autore == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Autore[/b]'";
    }
    else
    {
    if (
    $titolo == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Titolo libro[/b]'";
    }
    else
    {
    if (
    $cedit == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Editore[/b]'";
    }
    else
    {
    if (
    $isbn == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]ISBN[/b]'";
    }
    else
    {
    if (
    $refusi == null)
    {
    print 
    "Errore: &egrave; necessario compilare il campo '[b]Refusi[/b]'";
    }
    else
    {
    if (
    $typeerr == "nullo")
    {
    print 
    "Errore: &egrave; necessario scegliere la '[b]Tipologia errore[/b]'";
    }
    else
    {
    if (
    $checkbox == "ultimo")
    {
    // Processo di configurazione dell'email con ultimo refuso
    // [Destinatario, mittente, ecc]
    $sito "<a href='http://refusi.altervista.org'>";
    $sito2 "<a href='http://refusi.altervista.org/invia-refuso'>";
    $mail_to "refusi@altervista.org";
    $mail_from $email;
    $mail_subject "Refusi inviati da parte di $nick";
    $mail_body "

    Refusi inviati da 
    $nick ($email) dal libro [i]$titolo[/i] di $autore pubblicato da $cedit e tradotto da $trad $isbn:

    <font color=#003300>
    $refusi</font>

    Considerato come: 
    $typeerr, ULTIMO REFUSO: lettura $radiobutton.</p>";
    // Intestazioni HTML
    $mail_in_html "MIME-Version: 1.0
    "
    ;
    $mail_in_html .= "Content-type: text/html; charset=iso-8859-1
    "
    ;
    $mail_in_html .= "From: <$mail_from>";
    // Processo di invio
    if (mail($mail_to$mail_subject$mail_body$mail_in_html))
    {
    print 
    "Grazie per il tuo contributo, [b]$nick[/b]!
    Un amministratore provveder&agrave; a controllare la validit&agrave; dei tuoi refusi prima di inserirli sul sito.

    $sito2 Invia un altro refuso</a> oppure $sito Torna al sito</a>";
    }
    else
    {
    print 
    "Errore";
    }
    }
    else
    {
    // Processo n°2 di configurazione dell'email
    // [Destinatario, mittente, ecc]
    $sito "<a href='http://refusi.altervista.org'>";
    $sito2 "<a href='http://refusi.altervista.org/invia-refuso'>";
    $mail_to "refusi@altervista.org";
    $mail_from $email;
    $mail_subject "Refusi inviati da parte di $nick";
    $mail_body "

    Refusi inviati da 
    $nick ($email) dal libro [i]$titolo[/i] di $autore pubblicato da $cedit e tradotto da $trad $isbn:

    <font color=#003300>
    $refusi</font>

    Considerato come: 
    $typeerr</p>.";
    // Intestazioni HTML
    $mail_in_html "MIME-Version: 1.0
    "
    ;
    $mail_in_html .= "Content-type: text/html; charset=iso-8859-1
    "
    ;
    $mail_in_html .= "From: <$mail_from>";
    // Processo di invio
    if (mail($mail_to$mail_subject$mail_body$mail_in_html))
    {
    print 
    "Grazie per il tuo contributo, [b]$nick[/b]!
    Un amministratore provveder&agrave; a controllare la validit&agrave; dei tuoi refusi prima di inserirli sul sito.

    $sito2 Invia un altro refuso</a> oppure $sito Torna al sito</a>";
    }
    else
    {
    print 
    "Errore";
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    ?>

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.