Javascript JSON Form elementen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • NeFoRcE
  • Registratie: Mei 2004
  • Laatst online: 11-09 16:11

NeFoRcE

Hallo? Bent u daar?

Topicstarter
Heren,

Ik zit me al een avondje te buigen, en te Googlen, maar ik krijg niet het gewenste resultaat.

De situatie:
Ik heb een html formulier, met velden als:
input name="trip[title]"
input name="trip[purpose]"
input name="trip[latlong]"
input name="trip[description]"
etc...

ik wil hier een JSON object van hebben, en dan wel key -> value.

Echter dit krijg ik maar als resultaat:

"{"trip[title]":"","trip[purpose]":"","trip[latlong]":"","trip[description]":"dit is de omschrijving"}"

Deze jQuery functie gebruik ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// JQUERY SELECTOR:
JSON.stringify($("#module-form input[name*='trip']").serializeObject());

$.fn.serializeObject = function() {
        var o = {};
        var a = this.serializeArray();
            $.each(a, function() {
            if (o[this.name] !== undefined) {
                if (!o[this.name].push)
                    o[this.name] = [o[this.name]];
                o[this.name].push(this.value || '');
            } else
                o[this.name] = this.value || '';
        });
        return o;
    };


Mijn doel:
Graag zou ik willen dat trip[] weggelaten wordt. Dus gewoon:
title: ....
purpose: ....
etc..

Doe ik iets verkeerds? Of moet ik dit preg-matchen met PHP (waar het uiteindelijk naar toe gestuurd wordt)...

Professioneel Heftruck Syndroom


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
ik neem aan dat je geen optie hebt om gewoon je input names te wijzigen?

dan kan je natuurlijk gewoon string functions gebruikenn (substr bijv.)

[ Voor 34% gewijzigd door BasieP op 09-02-2012 22:43 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • NeFoRcE
  • Registratie: Mei 2004
  • Laatst online: 11-09 16:11

NeFoRcE

Hallo? Bent u daar?

Topicstarter
BasieP schreef op donderdag 09 februari 2012 @ 22:42:
ik neem aan dat je geen optie hebt om gewoon je input names te wijzigen?

dan kan je natuurlijk gewoon string functions gebruikenn (substr bijv.)
Nope, anders moet ik m'n backend omgooien....

In PHP is de post-array te shiften, waardoor je title, purpose e.d. overhoudt. Maar dat werkt niet met mijn vraag helaas... :(

Professioneel Heftruck Syndroom


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00

TheNephilim

Wtfuzzle

Edit: nevermind!

[ Voor 92% gewijzigd door TheNephilim op 09-02-2012 23:49 ]


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Lijkt me dat je gewoon this.name moet verwerken, gewoon met substrings alles buiten de [ en ] om weghalen.

Acties:
  • 0 Henk 'm!

  • Killemov
  • Registratie: Januari 2000
  • Laatst online: 24-08 23:40

Killemov

Ik zoek nog een mooi icooi =)

De vraag is terug te brengen naar "Ik wil een library-functie gebruiken, maar dan toch net anders.". Je vraag is op zich vreemd te noemen. Je kunt dit wel op vele manieren oplossen. Als ik kijk naar de resulterende JSON-string dan zou die met een regexp/replace op trip[$1] -> $1 direct aangepast kunnen worden.

Hey ... maar dan heb je ook wat!


Acties:
  • 0 Henk 'm!

  • NeFoRcE
  • Registratie: Mei 2004
  • Laatst online: 11-09 16:11

NeFoRcE

Hallo? Bent u daar?

Topicstarter
Thanks heren, ik ga het met regex oplossen. Dat gaat wel werken :) Bedankt voor het meedenken in ieder geval! (Y)

Professioneel Heftruck Syndroom

Pagina: 1