Prev: JPGraph error.
Next: Registry class question.
From: Shawn McKenzie on 26 Feb 2010 14:26 I remembered seeing this question on the list several times in the past, so I thought I would post something I just hacked up for someone. As we know, we can user header() to redirect the browser, but of course we can't redirect the browser and have it post data to the new page. If you need to do this it will require javascript. Here's a quick and dirty function: function http_post_redirect($url='', $data=array(), $doc=false) { $data = json_encode($data); if($doc) { echo "<html><head></head><body>"; } echo " <script type='text/javascript'> var data = eval('(' + '$data' + ')'); var jsForm = document.createElement('form'); jsForm.method = 'post'; jsForm.action = '$url'; for (var name in data) { var jsInput = document.createElement('hidden'); jsInput.setAttribute('name', name); jsInput.setAttribute('value', data[name]); jsForm.appendChild(jsInput); } document.body.appendChild(jsForm); jsForm.submit(); </script>"; if($doc) { echo "</body></html>"; } exit; } -- Thanks! -Shawn http://www.spidean.com
From: Ashley Sheridan on 26 Feb 2010 15:20 On Fri, 2010-02-26 at 13:26 -0600, Shawn McKenzie wrote: > I remembered seeing this question on the list several times in the past, > so I thought I would post something I just hacked up for someone. > > As we know, we can user header() to redirect the browser, but of course > we can't redirect the browser and have it post data to the new page. If > you need to do this it will require javascript. Here's a quick and > dirty function: > > function http_post_redirect($url='', $data=array(), $doc=false) { > > $data = json_encode($data); > > if($doc) { > echo "<html><head></head><body>"; > } > echo " > <script type='text/javascript'> > var data = eval('(' + '$data' + ')'); > var jsForm = document.createElement('form'); > > jsForm.method = 'post'; > jsForm.action = '$url'; > > for (var name in data) { > var jsInput = document.createElement('hidden'); > jsInput.setAttribute('name', name); > jsInput.setAttribute('value', data[name]); > jsForm.appendChild(jsInput); > } > document.body.appendChild(jsForm); > jsForm.submit(); > </script>"; > > if($doc) { > echo "</body></html>"; > } > exit; > } > > -- > Thanks! > -Shawn > http://www.spidean.com > Someone mentioned on the whatwg mailing list that most browsers are capable of understanding multipart content, so that you could send down two types of content a bit like you'd send a multipart email. Thanks, Ash http://www.ashleysheridan.co.uk
|
Pages: 1 Prev: JPGraph error. Next: Registry class question. |