Visualizzazione risultati 1 fino 7 di 7

Discussione: Recuperare valori checkbox selezionati

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito Recuperare valori checkbox selezionati

    Sto creando un piccolo sistema di messaggistica fra utenti, in questo sistema, ancora non finito, ogni messaggio ha al lato una checkbox con attributo name msg è che ha come attributo value lo stesso id del messaggio, preso dal database.

    Sapendo questo, credo che sia intuibile che i numeri di checkbox varia a secondo dei messaggi che un'utente ha.

    Per fare una prova ho voluto prendere il valore di tutti i checkbox selezionati con questo codice, preso da internet:

    Codice PHP:
    foreach ($_POST["msg"] as $key => $value) {
    echo
    "Valore checkbox selezionata => $value<p />";
    }
    Ma non funziona, secondo voi come mai? il submit del form, contenente questi checkbox, me lo esegue correttamente, fino a quando inserisco questo codice.

    Sevenjeak
    Software developer and much more

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Come name per gli input checkbox prova ad usare msg[], in modo da specificare che vuoi un array.

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Infatti ora funziona, grazie.

    Sevenjeak
    Software developer and much more

  4. #4
    Guest

    Predefinito

    Io ho creato uno schizzo di un form, solo che le uniche 2 cose che non funzionano perfettamente sono:

    1. il checkbox che nella mail che mi arriva segna solo l'ultimo dei tre quadratini selezionati, anche se li ho distinti nell'attributo name così

    Codice HTML:
    <fieldset>
    			<legend>Linguaggi conosciuti CHECKBOX</legend>
    	
    					<input name="check[1]" type="checkbox" value="html">HTML<br>
    					
    					<input name="check[2]" type="checkbox" value="css">CSS<br>
    					
    					<input name="check[3]" type="checkbox" value="javascript">JavaScript
    			
    			</fieldset>
    2. La mail che mi arriva è completamente in codice HTML e qualsiasi programma di posta elettronica pur essendo impostato su HTML non riesce ad interpretarlo.

    Questo è il codice PHP

    Codice PHP:
    <?php
    //includo macrovariabili
    include('variabile.php');

    //inizio lettura variabili da form

    session_start();

    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $tel = $_POST['tel'];
    $address = $_POST['address'];
    $cap = $_POST['cap'];
    $paese = $_POST['paese'];
    $radio = $_POST['spunta'];
    $select = $_POST['select'];
    foreach(
    $_POST['checkbox'] as $key => $value) {
    $send = "scelta: $key con valore: $value\n";
    }

    //Procedura invio mail al webmaster

    $to = $mia_mail;
    $sbj = "Hai ricevuto una mail dal form del sito $sito_internet";
    $msg = "
    <html>
    <head>
    <style type='text/css'>

    </style>

    </head>

    <body>
    <p>Nome:
    $nome</p>
    <p>E-mail:
    $email</p>
    <p>Telefono:
    $tel</p>
    <p>Indirizzo:
    $address</p>
    <p>CAP:
    $cap</p>
    <p>Paese:
    $paese</p>
    <p>Linguaggio:
    $radio</p>
    <p>Siti:
    $select</p>
    <p>Linguaggio2:
    $send</p>

    </body>
    </html>
    "
    ;

    $from = $email;
    $headers = "Inviata da $from";

    mail($to,$sbj,$msg,$headers);

    //Fine mail al Webmaster

    //Inizio mail di conferma all'utente

    $tocliente = $email;
    $oggetto = "Conferma registrazione $nome dal sito $sito_internet";
    $mioindirizzo = $mia_mail;
    $messaggio = "
    <html>
    <head>
    <style type='text/css'>
    #saluti {font-weight:bold;}
    article {background-color:#cc0099;
    padding:10px;
    border-radius:10px;
    }

    p {color:#ffffff;
    font-family:arial, Sans Serif;
    }
    </style>
    </head>

    <body>
    <article>
    <p>Grazie,
    $nome</p>
    <p>Grazie per aver contattato il sito <a href='http://www.pippo.it' target='_blank'>
    $sito_internet</a></p>
    <p>Abbiamo ricevuto la tua mail e ti ricontatteremo il prima possibile</p>
    <p id='saluti'>Cordiali Saluti</p>
    </article>
    </body>
    </html>"
    ;

    mail($tocliente,$oggetto,$mioindirizzo,$messaggio);

    ?>
    Grazie a chi mi risponderà.

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da australiafever Visualizza messaggio
    1. il checkbox che nella mail che mi arriva segna solo l'ultimo dei tre quadratini selezionati, anche se li ho distinti nell'attributo name così
    Come ho scritto sopra, i campi devono chiamarsi tutti con lo stesso nome campo[], senza un numero fra le parentesi.

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

    Predefinito

    Citazione Originalmente inviato da australiafever Visualizza messaggio
    2. La mail che mi arriva è completamente in codice HTML e qualsiasi programma di posta elettronica pur essendo impostato su HTML non riesce ad interpretarlo.
    Per essere interpretato in HTML, nell'header devi aggiungere le righe:

    Codice PHP:
    // To send HTML mail, the Content-type header must be set
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    (fonte: il manuale).

    Dopo, potrai aggiungere anche il "From", che non si scrive in questo modo:
    Codice PHP:
    $from = $email;
    $headers = "Inviata da $from";
    Ma ad esempio così:
    Codice PHP:
    $from = $email;
    $headers = "From: $from";
    O forse, meglio:
    Codice PHP:
    $from = $email;
    $headers = "From: $from<$from>";
    Occhio che devi aggiungere l'operatore di concatenazione alla variabile $headers quando assegni il from, altrimenti perderai le stringhe per farlo visualizzare in html! (quelle prese dal manuale, per intenderci).

    Ciao!
    Ultima modifica di alemoppo : 12-05-2012 alle ore 13.43.41

  7. #7
    Guest

    Predefinito

    Grazie per l'esauriente risposta. Mi metto all'opera.

    Edit: Nella mail che dove arrivare a me si è sistemato il problema dell'HTML, invece nella mail che deve arrivare a chi compila il form è rimasto invariato.

    La domanda è: gli headers devi inserirli anche nella parte della seconda mail oppure basta che inserisco la variabile $headers nel comando mail?

    Riguardo ai checkbox avete idee?

    grazie ancora per la pazienza.
    Ultima modifica di australiafever : 12-05-2012 alle ore 14.11.58

Regole di scrittura

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