Visualizzazione risultati 1 fino 3 di 3

Discussione: Aiuto checkbox e radio button in form

  1. #1
    Guest

    Post Aiuto checkbox e radio button in form

    Buonasera a tutti,

    Purtroppo non ho mai studiato PHP ma me ne sto interessando e inizio a testarne le varie funzionalità.
    Avrei un problema che sembra assilli parecchie persone.
    Una pagina HTML dove ho il mio bel form, nel quale sono presenti anche radio button e check boxes.
    Purtroppo quando vado sul lato PHP, questi non riesco a leggerli (ed una volta che provo ad inviarmi l'email con i dati contenuti nei campi questi risultano essere vuoti).


    Codice HTML:
    <!-- Checkbox (3) -->
    <input type="checkbox" value="yes" name="check1" Checked/><label for="check1">Test1</label> &nbsp
                <input type="checkbox" value="yes" name="check2" Checked/><label for="check2">Test2</label> &nbsp
                <input type="checkbox" value="yes" name="check3" Checked/><label for="check3">Test3</label> &nbsp
    
    <!-- Radio -->
    <input type="radio" value="m" name="gender" />M &nbsp 
                <input type="radio" value="f" name="gender" />F
    
    <!-- il resto l'ho omesso (tag base etc.)-->

    Codice PHP:
    <?php

    if(isset($_POST['submit'])) //submit è il mio bottone POST nell'html
    {
    $myemail = 'miamail'; //per motivi di privacy l'ho rimossa ma è inserita correttamente
    $subject = 'mioOggetto';
    $gender = 'unknown';
    $check1= ' ';
    $check2 = ' ';
    $check3= ' ';


    if(
    $_POST['gender'] == 'm') //questi sono due radio button (anche se seleziono M viene fuori "female" nell'email :c)
    $gender = 'male';
    else
    $gender = 'female';

    if(
    $_POST['check1'] == 'yes') //checkbox 1 (ritorna valore nullo seppur selezionato, stessa cosa per le altre 2)
    $check1 = 'X';
    else
    $check1 = ' ';

    if(
    $_POST['check2'] == 'yes')
    $check2 = 'X';
    else
    $check2 = ' ';

    if(
    $_POST['check3'] == 'yes')
    $check3 = 'X';
    else
    $check3 = ' ';

    $emailbody = 'First Name: '.$_POST['name']."\n"
    .'Last Name: '.$_POST['lastname']."\n"
    .'Email: '.$_POST['email']."\n"
    .'Gender: '.$gender."\n"
    .'Checks - 1:'.$check1.' 2:'.$check2.' 3:'.$check3."\n";
    .
    'Data: '.$_POST['date2'].'/'.$_POST['date1'].'/'.$_POST['date3']."\n" //con la data non ho problemi
    .'Comments: '.$_POST['comments']."\n";

    mail($myemail, $subject, $emailbody);
    header('location: thankyou.html');
    }
    else
    {
    header('location: index.html');
    }

    ?>

    Grazie mille <3

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,852

    Predefinito

    Per $_POST['gender'], strano, dovrebbe funzionare.

    Per i checkbox, se sono checkati esisterà $_POST['valore'], altrimenti non esiste proprio. Quindi non devi andare a controllare il suo valore, bensì se esiste o meno (e questo lo fai con isset(), come hai fatto con $_POST['submit']).

    Comunque, in questi casi è utilissimo usare gli strumenti per sviluppatori che sono nei browser. Puoi aprire lo strumento con la combinazione <ctrl>+<maiusc>+i.

    Se usi chrome, dopo aver premuto la combinazione, invia il form. Poi apri la scheda network. In basso a sinistra sotto "name" dovresti essere in grado di visualizzare la richiesta appena effettuata. Cliccandoci sopra appaiono i dettagli di questa richiesta. Scorrendo in basso puoi vedere tutti i parametri inviati.

    Se usi firefox, dopo aver premuto la combinazione, invia il form. Poi apri la scheda Rete. Anche qui dovresti avere una riga inerente alla richiesta appena effettuata. Cliccandoci sopra->parametri puoi visualizzare tutti i parametri inviati.

    Ciao!

  3. #3
    Guest

    Predefinito

    Grazie mille! le check box funzionano ora :)
    Ho guardato la richiesta inviata e mi sono stupito: in gender compare M! però nell'email che ricevo mi compare female... sai cosa potrebbe essere? :c

    name:luca
    lastname:####
    email:#####
    gender:M
    check1:yes (omesso il check 3 apposta per vedere se funzionava, nell'email mi compaiono le X)
    check2:yes
    date1:November
    date2:18
    date3:2015
    comments:asd
    submit:Send

    P.S. RISOLTO, mi inviava una "M" al posto che "m", scusami per la distrazione, funziona tutto.
    Grazie ancora!
    Ultima modifica di lollators : 10-08-2015 alle ore 21.25.57

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •