Bug Tracker

Opened 10 years ago

Closed 9 years ago

#5154 closed feature (invalid)

function for using post with load

Reported by: naktinis Owned by:
Priority: low Milestone:
Component: ajax Version: 1.4.3
Keywords: ajaxrewrite Cc: naktinis@…
Blocked by: Blocking: #7195

Description

In order for load() method to submit data using post method, one needs to pass data object in the following form: {'name1': 'value1', 'name2': ['value2', 'value3']} etc.

However, there is no easy way of getting this object for some form element.

Currently, I have written this function myself, but it would be nice to have it in the official release anyway.

It would be convenient to simply write: $('box').load('path', $('#form').toObject()) or smth.

Change History (7)

comment:1 Changed 9 years ago by Rick Waldron

Priority: majorlow
Resolution: wontfix
Status: newclosed

What you want to use is:

$('box').load('path', $('#form').serialize())

This will serialize the form input elements into key=value pairs for posting.

comment:2 Changed 9 years ago by naktinis

Correct me if I'm wrong, but according to documentation "$('box').load('path', $('#form').serialize())" would issue GET command (the question is about issuing POST), because (quoting serialize, and load method documentations):

  1. The .serialize() method creates a text string in standard URL-encoded notation.
  2. The POST method is used if data is provided as an object; otherwise, GET is assumed.

See: http://api.jquery.com/serialize/ and http://api.jquery.com/load/

comment:3 Changed 9 years ago by Rick Waldron

Milestone: 1.41.5
Resolution: wontfix
Status: closedreopened
Version: 1.3.21.4.3

I guess I didn't realize that it HAD to be a post. In that case, take a look at this:

http://richardwaldron.com/test-cases/5154.html

comment:4 Changed 9 years ago by snover

Blocking: 7195 added
Status: reopenedopen

Truly, the behaviour of $.fn.load is in a bizarre class of its own. Rather than providing a mechanism for switching between GET and POST, we should probably just revisit the logic of the method itself to begin with.

comment:5 Changed 9 years ago by Rick Waldron

Keywords: ajaxrewrite added

comment:6 in reply to:  description Changed 9 years ago by temp01

Replying to naktinis:

However, there is no easy way of getting this object for some form element.

There is: .serializeArray(). What you want is:

$(..).load('url', $form.serializeArray());

That should do POST and work like the way you want.

Last edited 9 years ago by temp01 (previous) (diff)

comment:7 Changed 9 years ago by john

Resolution: invalid
Status: openclosed

Closing after temp01's feedback.

Note: See TracTickets for help on using tickets.