Problema con lettura dati da selezione multipla in php

Laur

Nuovo Utente
21 Apr 2010
3
0
0
Ciao a tutti, mi sono appena iscritta a questo forum perchè ho avuto modo di consultare alcune vostre risposte che mi sono state molto utili e l'ho trovato davvero ben fatto! Complimenti!
Premetto che non sono un genio di html e php, non è il mio lavoro, ma sto realizzando una semplicissima newsletter che però mi dà alcuni problemi.
Ho creato una pagina html con un form di iscrizione alla newsletter che include una selezione multipla, di cui allego il codice:
<td class="form_field" align="left">Sono interessato a:<br>
<font size="1">(Premere Ctrl per scelte multiple)</font></td>
<td>
<SELECT NAME="interesse[]" SIZE="4" multiple="multiple">
<OPTION VALUE="riabilitazione">Riabilitazione
<OPTION VALUE="ortopedia">Ortopedia
<OPTION VALUE="neurologia">Neurologia
<OPTION VALUE="ricerca">Ricerca
<OPTION VALUE="ergonomia">Ergonomia
<OPTION VALUE="sport">Sport
<OPTION VALUE="veterinaria">Veterinaria
</SELECT></td>

E ho passato i valori ad una pagina .php che dovrebbe mandare il tutto tramite e-mail al mio indirizzo, usando il codice che riporto sotto:
$interesse=$_POST['interesse'];
foreach ($interesse as $valore) {echo "$valore<br>\n";}

Il problema è che quando seleziono due campi, nella mail viene sempre solo incluso l'ultimo selezionato.
Mi potreste dare una mano?

Grazie mille!
 
non credo che un menù select vada bene per quello che devi fare dato che invia un solo valore alla volta, ti consiglio di utilizzare delle checkbox, dai uno sguardo a questo articolo
 
ciao
mi dispiace contraddire eliox, ma perchè dici che non funziona?
PHP:
<?php
if(isset($_POST['invia'])){
var_dump($_POST['interesse']);
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<SELECT NAME="interesse[]" SIZE="4" multiple >
<OPTION VALUE="riabilitazione">Riabilitazione
<OPTION VALUE="ortopedia">Ortopedia
<OPTION VALUE="neurologia">Neurologia
<OPTION VALUE="ricerca">Ricerca
<OPTION VALUE="ergonomia">Ergonomia
<OPTION VALUE="sport">Sport
<OPTION VALUE="veterinaria">Veterinaria
</SELECT><br><input name="invia" type="submit" id="invia" value="invia">
</form>
restituisce questo se seleziono due

array(2) { [0]=> string(10) "neurologia" [1]=> string(7) "ricerca" }
o questo se 4
array(4) { [0]=> string(14) "riabilitazione" [1]=> string(9) "ortopedia" [2]=> string(10) "neurologia" [3]=> string(7) "ricerca" }
forse l'errore è nel tag select che dovrebbe essere

<SELECT NAME="interesse[]" SIZE="4" multiple>
e non
<SELECT NAME="interesse[]" SIZE="4" multiple="multiple">

p.s.
dimenticavo: guarda che per fare la selezione multipla quando selezioni devi tenere premuto il tasto Ctrl
 
Non so, a me proprio non funziona (so di dover premere Ctrl...)!
Forse sbaglio nel php perchè io dovrei inviare i dati in un messaggio incluso in una mail, perciò nel file php (che è un altro file...) scrivo:

$interesse=$_POST['interesse'];
foreach ($interesse as $valore) {echo "$valore\n";}

E poi uso queste funzioni per scrivere la mail:
$messagebody=("Sig.: ".$fromname."\n"."Società: ".$societa."\n"."Indirizzo: ".$indirizzo."\n"."Città: ".$citta."\n"."Telefono: ".$telefono."\n"."E-mail: ".$fromemail."\n"."Sono interessato a: ".$valore."\n"."Messaggio: ".$message);

$sent = mail($to, $subject, $messagebody, $headers) ;
Ma non mi esce nessun risultato...
 
ciao
prova in questo modo
PHP:
<?php
if(isset($_POST['invia'])){
//var_dump($_POST['interesse']);
$interesse=$_POST['interesse'];
foreach($interesse as $valore){
	$val.=$valore."<br>";
}
echo "<br>".$val;
}
?>
poi quello che scrivi
PHP:
$messagebody=("Sig.: ".$fromname."\n"."Società: ".$societa."\n"."Indirizzo: ".$indirizzo."\n"."Città: ".$citta."\n"."Telefono: ".$telefono."\n"."E-mail: ".$fromemail."\n"."Sono interessato a: ".$valore."\n"."Messaggio: ".$message);
non è una funzione, almeno come l'hai scritta tra l'altro dovrebbe darti errore, prova a scriverla così e al posto di $valore metti $val

PHP:
$messagebody="Sig.: ".$fromname."\n"."Società: ".$societa."\n"."Indirizzo: ".$indirizzo."\n"."Città: ".$citta."\n"."Telefono: ".$telefono."\n"."E-mail: ".$fromemail."\n"."Sono interessato a: ".$val."\n"."Messaggio: ".$message;
//ecc...

p.s.
al posto di \n io usualmente preferisco il <br>
 
Ho fatto le modifiche che mi hai suggerito, ma così non manda neppure la mail.
Una volta selezionato invia, restituisce una pagina bianca vuota.... :confused:
 

Discussioni simili