jQuery hämta data från tabell och 'serialisera'

Permalänk
Medlem

jQuery hämta data från tabell och 'serialisera'

Tjoho,

Håller på med en liten grej till en liten hemsida där jag har för avsikt att hämta data från en tabell på sidan och sedan kasta vidare informationen till en PHP-sida.
Jag har inga problem med att få ut datan från tabellen men den kommer i ett "format" som jag inte lyckas konvertera till något som ajax vill kännas vid. Allt jag får är undefined=&undefined=...etcetera. Dock "rätt" antal.
Det jag hoppas på är att man kan använda

$(this).children("td:not([class="rem"])")

och få ut det som en serialiserad 'sträng' i form av [0]=första värde, [1]=andra värdet etcetera...

Jag har försökt på flera olika sätt men jag får det verkligen inte att fungera. Därför vänder jag mig till folk som förhoppningsvis har lite bättre insikt i detta än vad jag har. Min teoretiska kunskap med objekt arrayer osv är inte på topp.

$("input[name="save"]").click(function(){ var xml; $("#maintenance tbody tr").each(function(){ xml = $.param($(this).children("td:not([class="rem"])")); //$(this).children("td:not([class="rem"])").each(function(){ //}); }); //alert($.param(xmlarr)); $.ajax({ url: "savexml.php", type: "GET", data: xml }).done(function (data) { alert("Sparad!"); }); });

Koden är ganska rensad för tillfället, nu är det bara "core"-koden kvar.

EDIT: ska även passa på att tillägga att det kan vara mer än en "rad" (<tr>).

Visa signatur

Citera om du skriver till mig. Annars läser jag troligtvis INTE.

Permalänk

$.param($(this).children("td:not([class="rem"])")); returnerar väl ett jQuery objekt?
Borde du inte ha .html() eller liknande?

Permalänk
Medlem
Skrivet av Yxskaftet:

$.param($(this).children("td:not([class="rem"])")); returnerar väl ett jQuery objekt?
Borde du inte ha .html() eller liknande?

Som jag förstått det ska param ta emot ett objekt och göra om till en sträng (ala serialisera).
http://api.jquery.com/jQuery.param/

Visa signatur

Citera om du skriver till mig. Annars läser jag troligtvis INTE.

Permalänk
Medlem

Du förstår fel. $.param jobbar med objekt, arrayer eller dom-element som följer en specifik struktur.

Objekt:
$.param({ 'arg1': 'val1', 'arg1':'val1' })

Array (name/value):
$.param([ { name:'arg1', value: 'val1' }, { name: 'arg2', value: 'val1' } ])

DOM-element/jQuery objekt (endast för element som har attributen name och value):
$.param($('[name][value]'))

Du får således undefined för att du försöker göra samma sak med div:ar som saknar name/value.

$.param($.map($('div[id]'), function(e) { return { name: $(e).attr('id'), value: $(e).text()}; }))

I ditt fall får du väl se till att name: 0...n

Permalänk
Medlem
Skrivet av magixts:

Du förstår fel. $.param jobbar med objekt, arrayer eller dom-element som följer en specifik struktur.

Objekt:
$.param({ 'arg1': 'val1', 'arg1':'val1' })

Array (name/value):
$.param([ { name:'arg1', value: 'val1' }, { name: 'arg2', value: 'val1' } ])

DOM-element/jQuery objekt (endast för element som har attributen name och value):
$.param($('[name][value]'))

Du får således undefined för att du försöker göra samma sak med div:ar som saknar name/value.

$.param($.map($('div[id]'), function(e) { return { name: $(e).attr('id'), value: $(e).text()}; }))

I ditt fall får du väl se till att name: 0...n

Jo, jag förstod att det var därför mitt sätt inte ville fungerade. Men jag hade hoppats på att någon hade ett fantastiskt enkelt sätt att lösa det på.
Men så verkar inte vara fallet. Jag väljer nog att titta på en helt annan lösning eftersom detta inte riktigt blir som jag tänkt mig.

Tack ändå!

Visa signatur

Citera om du skriver till mig. Annars läser jag troligtvis INTE.

Permalänk
Medlem
Skrivet av anden12:

Jo, jag förstod att det var därför mitt sätt inte ville fungerade. Men jag hade hoppats på att någon hade ett fantastiskt enkelt sätt att lösa det på.
Men så verkar inte vara fallet. Jag väljer nog att titta på en helt annan lösning eftersom detta inte riktigt blir som jag tänkt mig.

Tack ändå!

Jag tror du är ute efter http://www.json.org/js.html

Visa signatur

Kom-pa-TI-bilitet