2013-10-18 8 views
18

Ecco un frammento del mio codice: http://jsfiddle.net/natatkinson/xbWEb/select2 più valori inviando un solo valore in POST

Javascript:

$(document).ready(function() { 
    $("#tags").select2({ 
     maximumSelectionSize: 3 
    }); 

}); 

HTML:

<form name="form1" id="form1" action="" method="GET"> 
<fieldset> 
    <legend>Shoe Info</legend> 
    <dl> <dt>Name:</dt> 

     <dd> 
      <input type="text" name="name" id="name" size="40" placeholder="Shoe name" required autofocus> 
     </dd> 
    </dl> <dt>Tags:</dt> 

    <dd> 
     <select multiple="" name="tags" id="tags" style="width:100%;"> 
      <option value="0">Select Tags</option> 
      <option value="2">racing flat</option> 
      <option value="3">track spikes</option> 
      <option value="1">trainer</option> 
     </select> 
    </dd> 
    </dl> 
</fieldset> 
<p class="submit-buttons"> 
    <input type="submit" class="button1" name="submit" id="submit" value="Add Shoes" /> 
</p> 

Tutto quello che invia è 1 valore, non una lista separata da virgola come dice la documentazione.

+5

hai provato a utilizzare "tag []" come nome? – Tschitsch

+0

Se faccio una richiesta con 3 tag elencati, vedo quanto segue come URL della richiesta: '/? Name = abc & tags = 0 & tags = 2 & tags = 3 & submit = Aggiungi + Shoes' – Nightfirecat

+0

@Tschitsch Questo è tutto! Informerò l'autore per aggiornare la loro documentazione. Non posso credere di non averlo provato prima. Grazie –

risposta

59

È necessario utilizzare [] per il controllo del modulo contenente più valori. corretta usando in basso:

<select multiple="" name="tags[]" id="tags" style="width:100%;"> 
+0

Grazie. Cosa succede se voglio la stringa separata da virgola dell'opzione selezionata? –

+0

@ankitsuthar Guarda la nuova risposta, spero che questo possa aiutarti. – Frank

1

penso che non è possibile ottenere i dati di stringa da select2 direttamente, si dovrebbe aggiungere un input nascosto, e inviare il valore del input nascosto come param.

<input type="hidden" name="tags" id="tags"></input> 
<select multiple="" style="width:100%;" onchange="changeSelect(event)"> 
    <option value="0">Select Tags</option> 
    <option value="1">trainer</option> 
</select> 
function changeSelect(event){ 
    var select2Value = $(event.target).val(); 
    $("tags").val(select2Value); 
} 
Problemi correlati