Markm wrote:
> I am just begining here ... do you mind if I see that your complete (I
> mean your controller and defs) code? For eg, I did not understand this
> piece of code:
>
> I'm fighting with the same problem and it'll be very useful if I could
> learn with you!
Hi Markus.
I see that Bob Ippolito has already explained the function() { ... }
definition - thanks Bob.
Most of the code I used was only to test out sending data back and forth
between the server and the browser without using html forms and would be
more confusing than it's worth so I'll sum up what I've learned from
experimentation and with the patient assistance of others on this list
(thank you all). If anything here is incorrect or could be done better
then please let us all know.
Simple rules I read somewhere:-
Use GET if the data you are sending to the server is less than 512 bytes
and can be sent on the url.
Use the POST method if the data is more than 512 bytes or needs to be
more secure.
---------------
Sending from the browser using GET:-
function toServerByGET(url, fct) {
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState==4 ) {
fct( xmlhttp.responseText );
}
};
xmlhttp.open("GET",url);
xmlhttp.send(null);
}
and is called like this
urlAndData = "/controllerName/methodName/?parm1=" + value1 +
"&parm2=" + value2;
toServer( urlAndData, responseHandler )
---------------
Sending from the browser using POST:-
function toServerByPOST( url, data, fct ) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open( "POST", url, true );
// note setRequestHeader must appear after .open and is used
// to encode the data as though it came from a form (thanks Robert)
xmlhttp.setRequestHeader( "Content-Type",
"application/x-www-form-urlencoded" );
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState==4 ) {
fct( xmlhttp.responseText );
}
}
xmlhttp.send( data );
};
and is called like this
var data = {
id: 1,
parm1: "value1"
parm2: "value2"
}
toServerByPOST( "/controllerName/methodName", data, responseHandler );
---------------
The method in the controller is the same in both instances:-
class ControllerNameController(BaseController):
def methodName(self):
value1 = request.params['parm1']
value2 = request.params['parm2']
return Response( "responseData" )
---------------
Hope this helps in some way.
Uwe.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---