Javascript o Jquery - recupero testo (oltre al valore) di una select

psicona

Nuovo Utente
10 Mar 2017
18
1
3
Ciao a tutti,
sto facendo una modifica ad un codice php/js andando a tentativi (poiché provengo da vb/asp).
Ho il seguente codice:
Codice:
     fields = form.serializeArray(),
     data = {},
     fields.forEach(function(field){
        data[field.name] = field.value;
     });
quando devo recuperare i valori del form, utilizzo ad esempio
Codice:
rivalutazione = parseFloat(data.rivalutazione);
Il problema è che il ciclo forEach recupera tutti i valori e nel form ho una select di cui mi serve sia il valore che il testo (in pratica il testo è l'età mentre il valore è un coefficiente)

Sapreste dirmi cosa inserire per riuscire a recuperare anche il testo della select?
Grazie
Luca
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
io quando devo trasmettere più valori con una select faccio così (ti schematizzo)
HTML:
<select name="pinco">
  <option value="coef|eta">più valori</option>
</select>
poi nel php
PHP:
$ricevo=$_POST['pinco'];
//esplodo
$valori=explode("|", $ricevo);//valori diventa un array

echo $valori[0]; //ci sarà coef
echo $valori[1]; //ci sarà eta
 

psicona

Nuovo Utente
10 Mar 2017
18
1
3
grazie,
proverò la tua soluzione e ti farò sapere.
Quindi secondo te non c'è altro modo di intercettare il testo?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
la select tramette uno dei valori dato dal vaule di option, che volendo puà contenere anche la divina commedia
non so se possibile con js o jquery, se trovo qualcosa ti posto
 

psicona

Nuovo Utente
10 Mar 2017
18
1
3
Ciao Borgo,
ho provato la prima soluzione che hai scritto e ha funzionato.
Grazie ancora
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
io la uso quando devo trasmettere due o più valori e generalmente quando i valori delle option sono estratti da un db, ti schematizzo
PHP:
//tutti i dati di connesione e la query che interroga il db
echo "<form action=\"dove_vuoi.php\" method=\"post\">";
//alro campi del form
echo "<select name=\"pinco\">";
while($riga=mysqli_fetch_assoc($query)){
    $uno=$riga['campo_a'];
    $due=$riga['campo_b'];
    //altri campi del record se necessari
    $da_trasmettere=$uno."|".$due;//."|".$tre ecc..
    echo "<option value=\"$da_trasmettere\">più valori</option>";
}
echo "</select>";
//pulsante di subit
echo "</form>";
//....
oppure se nella query hai definito solo i campi che ti servono, o se li vuoi tramettere tutti, più semplicemente
PHP:
//..........
while($riga=mysqli_fetch_assoc($query)){
    $da_trasmettere=implode('|', $riga);//implode è la funzione inversa di explode
    echo "<option value=\"$da_trasmettere\">più valori</option>";
}
//......
dimenticavo:
nell'implode e di conseguenza dell'explode conviene usare un carattere strano