2012-03-28 3 views
0

Ich habe eine form[method=get], die eine Reihe von Kontrollkästchen hat alle haben die gleiche Name.Senden von Formular GET mit mehreren gleichen Namen Elemente führt zu langen Querystring

wenn das Formular abgeschickt wird, endet die URL aufzublicken wie

?MyCB=0&MyCb=4&MyCB=10 

ich die GET-Anforderung wünschen, im Browser angezeigt werden, wie (die gültig ist und funktioniert).

?MyCB=0,4,10 

Gibt es ein Attribut ich auf dem Formular, dies zu tun einstellen kann?

Ein letzter Ausweg wäre, das GET mit Hilfe von jquery abzufangen (deshalb habe ich das so getaggt, weil es dort irgendwelche Hilfsfunktionen gibt).

Antwort

0

Sie könnten einfach nicht einmal $ _GET verwenden und das gesamte Formular mit jquery behandeln und dann window.location auf das Array setzen.

Sie können leider kein Attribut hinzufügen, mit dem Formulare mehrere $ _GET-Variablen in einem Array zusammenfassen können.

2

könnten Sie jquery verwenden und dies tun:

<script> 
function sendtheform(){ 

var theurldata = $("input.MyCBclass").map(function() { 
    return $(this).val(); 
}).get().join(","); 

window.location ='yoururl.html?MyCB='+theurldata; 
} 
</script> 

Hier ist die Formularelemente HTML:

<input name="MyCB" class="MyCBclass" type="checkbox" value="1"> 
<input name="MyCB" class="MyCBclass" type="checkbox" value="2"> 
<input onClick="sendtheform()" type="button"> 

Dies wird zur Folge haben:

yoururl.html?MyCB=1,2 
Verwandte Themen