POSTing without a form?

D

Daniel

Ah, new question =) (Well, half-new, I asked something similar a while ago,
but disregarded the question myself)

Is there any way to post data to Javascript in a new page without using a
form or, alternatively, to dynamically construct a "virtual" form object
(such as new Form();) and submit it?

Thanks in advance,
Daniel
 
S

Stephen

Daniel said:
Ah, new question =) (Well, half-new, I asked something similar a while ago,
but disregarded the question myself)

Is there any way to post data to Javascript in a new page without using a
form or,

It seems you mean something like:

oNewWin = window.open(...)
oNewWin.document.write(...)

Your phrase "post data to Javascript in a new page" is both confused and
confusing to me. Post is a type of request (a "request method") that
goes to a web server. The web server takes the request and does
something with it -- "post" usually means the request is turned over to
a specified process to run, with the result of that process (most of the
time) returned to the originating client or causing some change at the
server (or both). Sometimes what is returned may cause a new
browser-window to open and display content at the client, but you don't
really "submit to another window" or "post to Javascript".

For the data to go anywhere, you *must* use a form. Hmmm... someone will
point out exceptions (HTTPRequest); but basically in HTML, if you want
to the data to go anywhere, you must use a form. And the form elements
containing the data you want to send must be within the <form></form>.

You can create the new window and content without any submitting
anything at all--just by using the window.open() and document.write()
methods listed above.

alternatively, to dynamically construct a "virtual" form object
(such as new Form();) and submit it?

There are probably several ways of dynamically creating a form: using
createElement('form')and adding the necessary attributes, children, etc;
using "innerHTML"; or in certain circumstances using documet.write().
Also, don't forget the possibility of using the HTTPRequest approach
(there have been some fairly recent posts on this).

Watch out for wrapping of long url's...

http://groups.google.com/groups?hl=...24j1rd4%241%40ID-142196.news.dfncis.de&rnum=1
http://groups.google.com/groups?hl=...lm=3d455b6c.15542701%40news.cis.dfn.de&rnum=1

Regards,
Stephen
 
T

Tim Williams

You can't POST between pages on the client-side, so you'll have to use GET.
Just create a querystring and append to the next URL.
Parse the "location" in the next page to retreive the info.
or use frames
or use cookies

tim
 
D

Daniel

Stephen said:
Your phrase "post data to Javascript in a new page" is both confused and
confusing to me. Post is a type of request (a "request method") that
goes to a web server. The web server takes the request and does
something with it -- "post" usually means the request is turned over to
a specified process to run, with the result of that process (most of the
time) returned to the originating client or causing some change at the
server (or both). Sometimes what is returned may cause a new
browser-window to open and display content at the client, but you don't
really "submit to another window" or "post to Javascript".

Sorry, I should've just said "post" - the data will be used by a Javascript
script in a new page, but that doesn't really matter... But I do mean post,
because posted/form-submitted data is sent through HTTP headers, eliminating
the possibility of hitting URL length barriers, and I have quite a lot of
data to send ;)
There are probably several ways of dynamically creating a form: using
createElement('form')and adding the necessary attributes, children, etc;
using "innerHTML"; or in certain circumstances using documet.write().
Also, don't forget the possibility of using the HTTPRequest approach
(there have been some fairly recent posts on this).

I'm gonna check out both createElement and the HTTPRequest thing and see
what I can find.

Thanks for the help, Stephen =)

Daniel
 
D

Daniel

Daniel said:
Sorry, I should've just said "post" - the data will be used by a Javascript
script in a new page, but that doesn't really matter...

Sloppy fingering here, it should've read "PHP constructed Javascript script"
:)
 
D

Daniel

Tim Williams said:
You can't POST between pages on the client-side, so you'll have to use GET.
Just create a querystring and append to the next URL.
Parse the "location" in the next page to retreive the info.
or use frames
or use cookies

tim

My mistake, I should've written that the data will be collected by a PHP
script that creates Javascript. Sorry =)
 
M

Markus Ernst

My mistake, I should've written that the data will be collected by a PHP
script that creates Javascript. Sorry =)

You can create a GET querystring like this:
<a href="file.php<? if($data) echo '?data='.$data; ?">

or POST via a form with hidden fields:
<form method="post" action="file.php">
<input type="hidden" name="data" value="<? echo $data; ?>">
</form>

I don't think that there are other possibilities.

HTH
 
D

Daniel

Stephen said:
For the data to go anywhere, you *must* use a form. Hmmm... someone will
point out exceptions (HTTPRequest); but basically in HTML, if you want
to the data to go anywhere, you must use a form. And the form elements
containing the data you want to send must be within the <form></form>.

Been looking into XML HTTPRequest, it fits my requirements exactly, and the
IE/Mozilla requirements impose no problems, so YAY!! =)

Thanks!


Daniel
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top