07. december 2010 - 16:23Der er
10 kommentarer og 1 løsning
Jquery ajax med checkbox data
Jeg er så småt begyndt at bruge jquery til mange ting, fordi det er dejlig nemt at arbejde med. Og nu skal jeg altså sende noget information til serveren via ajax, og det kan jquery jo også.
Mit problem består i at jeg har en masse felter på siden (er lavet i asp.net), og jeg skal kun sende 3 checkbox grupper. Jeg kunne ellers bruge $("form").serialize(), men det vil give mig en masse spild data, som jeg gerne vil undgå.
Og min js noget ala: function sendData() { $.ajax({ url: 'ajaxData.aspx', type: "POST", data: ???, success: function (data) { alert("data send") } }); }
Mit spørgsmål er, hvad skal jeg skrive for at få mine valgte checkbox værdier ind i data, så jeg kan hente dem ud med Request.Form["gruppe1"]?
En ekstra detalje er at navnene på checkbox'ene er noget meget langt noget (fra .net), så jeg kunne også godt tænke mig at "omdøbe" værdierne når de sendes. For at bruge det tidlige eks. ville jeg gerne have sendt de afkrydsede værdier i "gruppe1" checkboxene som "g1" i stedet. Så det blev noget ala:
coder >> Mig bekendt er det fuldstændig lige meget om de hedder "navn" eller "navn[]". Data ligger alligevel som et array.
jeg kan stadig lave en var mitArr = document.getElementsByName("gruppe1") for(f=0;f<mitArr.length;f++) { ... }
Men nu ville jeg gerne bruge jquery da det kan give en masse med en line kode. F.eks. kunne jeg skrive: $("input[name='gruppe1']").serialize()
Men jeg skal have 3 checkbox grupper, og jeg ville gerne omdøbe dem, da deres rigtige navn faktisk er "checkbox_ctl00$ContentPlaceHolder1$CheckBoxList1" hvilket er total usigende på min modtager side. Hvor det havde været nemmer hvis de var omdøbt til "team", "type" og "status" som faktisk er det data de indeholder.
bkb > Ikke vildt mange (men dog nogen). Men man ved aldrig med fremtiden. Og kender jeg min chef ret, så kommer der flere felter.
Men jo, jeg bruger serialize metoden lige nu så længe jeg udvikler. Men jeg ville rigtig gerne undgå det og få omdøbt mine sendte værdier da navnere er meget intetsigende (da de kommer fra .net).
Du har ret, jeg tænkte også mere på modtagersiden - Der skal de helst hedde noget med [] - men hvorfor kigger du ikke på serialize eller param i jquery - Du kan evt give dem en klasse som f.eks. "chkbox" og så lave en $(".chbox").serialize() ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.