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

  • Creatore Discussione Creatore Discussione psicona
  • Data di inizio Data di inizio

psicona

Utente Attivo
10 Mar 2017
24
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
 
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
 
grazie,
proverò la tua soluzione e ti farò sapere.
Quindi secondo te non c'è altro modo di intercettare il testo?
 
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
 
Ciao Borgo,
ho provato la prima soluzione che hai scritto e ha funzionato.
Grazie ancora
 
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
 

Discussioni simili