2012-01-25 9 views
6

Ho due elenchi MultiSelect (AllProductList e SelectedProductList), AllProductList contiene tutti i prodotti per una particolare categoria e aggiungo/clonò le opzioni da AllProductList a SelectedProductList usando JQuery.C'è un modo per pubblicare tutti i valori in un elenco a selezione multipla e non solo quelli selezionati?

Ovviamente desidero solo pubblicare i valori in SelectedProductList e indipendentemente dal fatto che siano selezionati o meno .

Ho avvolto i tag del modulo solo su SelectedProductList e ora ho bisogno di un modo per inviare tutti i valori di opzione in esso, indipendentemente se selezionato o meno.

+4

selezionarli tutti a livello di codice prima della presentazione. – Leonid

+0

Sì, sembra molto più plausibile e senza problemi – LaserBeak

risposta

2

si potrebbe scrivere qualche javascript che riempie un elemento di forma nascosta con tutti i valori della selezione, qualcosa di simile sotto, e sul lato server basta usare explode (",", $ _ POST ["allValues"]) per ottenere tutto opzioni

<script> 
var hiddenValues = ""; 
$(document).ready(function(){ 
    $("#mySelect option").each(function(){ 
     hiddenValues = $(this).val() + ","; 
    })//end each 

    $("#myForm").append("<input type='hidden' name='allValues' value='"+hiddenValues+"'>") 
}) 
</script> 

ovviamente, l'ha soprattutto una dipendenza jQuery e il modulo dispone di un ID di myForm e che il multiselect ha un id di mySelect :)

EDIT:
NOTA 1: che questo salva solo i valori delle opzioni e non le etichette dalla selezione (un metodo simile può essere impiegato per salvarli anche). basta tenere questo in mente

NOTA 2: attenzione se i valori contengono le virgole, per non invalidare il vostro input (se non sfuggito in un modo, o se non si utilizza qualche altro delimitatore)

+0

Ho cambiato le opzioni #mySelect in #mySelect e ha funzionato per me. grazie :) – Parag

+0

hai ragione, quella dovrebbe essere "opzione", la aggiungerò alla mia risposta – Bogdan

1

non posso commentare , quindi suppongo di dover dare una risposta ???

di Bogdan Richiede una risposta + =

hiddenValues += $(this).val() + ","; 

altrimenti si ottiene solo 1 ...

Problemi correlati