Re: t5 form submit not fired

2007-10-19 Thread Britske
 Ajax.Request('${theLink}', {asynchronous:true, 
 onSuccess:handleResponse});
 }

 On the page class i have:

 public String getTheLink() {
 Link l = _resources.createActionLink(myAction, false);
 return l.toURI();
 }

 public StreamResponse onMyAction() {
 CollectionCasta castas =
 _regiaoDao.getRegiao(regiao).getCastas();

 JSONObject jsonObject = new JSONObject();
   // Add whatever info you want to send to the client

 return new TextStreamResponse(text/xml,
 jsonObject.toString());
 }

 And that's it. Works great. All you have to do now is call the 
 sendRequest function from whatever javascript event you want to
 catch.
 Hope this helps.

 Britske wrote:

 I have a use-case in which i need to catch a onchange of of
 select-component
 on the server-side. The only way I know how to do that is do a 
 javascript
 onchange='this.form.submit()' and catch the onsubmit() event 
 on the
 serverside.

 This works well when i don't have a submit-component in the 
 form as
 well. However, when I do have a submit the onchange doesn't 
 give a
 onsubmit()
 on
 the serverside anymore.
 So, the onchange in the following snippet doesn't give a server
 side
 onsubmit()-event:

 body
 form t:type=form t:id=form id=form
 select t:type=select t:model=countryList 
 t:value=country
 onchange=this.form.submit();/
 input t:type=Submit value=All results/
 /form
 /body

 However, the following does:

 body
 form t:type=form t:id=form id=form
 select t:type=select t:model=countryList 
 t:value=country
 onchange=this.form.submit();/
 !--input t:type=Submit value=All results/--
 /form
 /body

 This isn't expected behavior since both examples do work with 
 plain
 html
 form elements. anyone?

 Geert-Jan
   
 
 
 
   
 
 
 

   
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13289159
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-19 Thread Britske
 is executed.)
  2. the first time i send a onchange.
 
  However after the first onchange all other onchange-event don't
 get
  getTheLink() executed, although sendRequest() is called on the
  client-side
  each time.
 
  This is my relevant code:
 
  in  html:
  script
  function sendRequest()
  {
 alert(sendRequest reached);
 new Ajax.Request('${theLink}',
  {asynchronous:true,onSuccess:handleResponse});
  }
  /script
  ...
  select t:type=select t:model=themaList t:value=thema
  onchange=sendRequest() name=thema id=thema tabindex=4
  class=formElement/
 
  in the page-class:
 public String getTheLink()
 {
 System.out.println(catched!!);
 return catched!;
 }
 
  Do you 've got any idea what causes this behavior?
 
  Thanks,
  Geert-Jan
 
 
 
 
  HugoPalma wrote:
 
 
 
 
  I would suggest that you use AJAX instead of doing the form
  submit.
  Although the AJAX integration in T5 is still not implemented
 it's
  very
  easy to do using the provided prototype and json javascripts. I
  did
  this
  successfully for some simple events also.
  Shortly, here's how i did it:
 
  In my page i have these two javascript functions:
 
  function handleResponse(xhrResponse) {
  var json = xhrResponse.responseText.evalJSON(true);
 
  //Do whatever you want with the server response
  }
  // --
 
  function sendRequest() {
  new Ajax.Request('${theLink}', {asynchronous:true,
  onSuccess:handleResponse});
  }
 
  On the page class i have:
 
  public String getTheLink() {
  Link l = _resources.createActionLink(myAction,
 false);
  return l.toURI();
  }
 
  public StreamResponse onMyAction() {
  CollectionCasta castas =
  _regiaoDao.getRegiao(regiao).getCastas();
 
  JSONObject jsonObject = new JSONObject();
// Add whatever info you want to send to the client
 
  return new TextStreamResponse(text/xml,
  jsonObject.toString());
  }
 
  And that's it. Works great. All you have to do now is call the
  sendRequest function from whatever javascript event you want to
  catch.
  Hope this helps.
 
  Britske wrote:
 
 
 
 
  I have a use-case in which i need to catch a onchange of of
  select-component
  on the server-side.
  The only way I know how to do that is do a javascript
  onchange='this.form.submit()' and catch the onsubmit() event
 on
  the
  serverside.
 
  This works well when i don't have a submit-component in the
 form
  as
  well.
  However, when I do have a submit the onchange doesn't give a
  onsubmit()
  on
  the serverside anymore.
 
  So, the onchange in the following snippet doesn't give a
 server
  side
  onsubmit()-event:
 
  body
  form t:type=form t:id=form id=form
   select t:type=select t:model=countryList
 t:value=country
  onchange=this.form.submit();/
  input t:type=Submit value=All results/
  /form
  /body
 
  However, the following does:
 
  body
  form t:type=form t:id=form id=form
   select t:type=select t:model=countryList
 t:value=country
  onchange=this.form.submit();/
  !--input t:type=Submit value=All results/--
  /form
  /body
 
  This isn't expected behavior since both examples do work with
  plain
  html
  form elements.
  anyone?
 
  Geert-Jan
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 --
 View this message in context:
 http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13289207
 Sent from the Tapestry - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 
 -- 
 --
 TheDailyTube.com. Sign up and get the best new videos on the internet
 delivered fresh to your inbox.
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13304059
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-19 Thread Josh Canfield
=formElement/
 
  in the page-class:
 public String getTheLink()
 {
 System.out.println(catched!!);
 return catched!;
 }
 
  Do you 've got any idea what causes this behavior?
 
  Thanks,
  Geert-Jan
 
 
 
 
  HugoPalma wrote:
 
 
 
 
  I would suggest that you use AJAX instead of doing the form
  submit.
  Although the AJAX integration in T5 is still not implemented
 it's
  very
  easy to do using the provided prototype and json javascripts. I
  did
  this
  successfully for some simple events also.
  Shortly, here's how i did it:
 
  In my page i have these two javascript functions:
 
  function handleResponse(xhrResponse) {
  var json = xhrResponse.responseText.evalJSON(true);
 
  //Do whatever you want with the server response
  }
  // --
 
  function sendRequest() {
  new Ajax.Request('${theLink}', {asynchronous:true,
  onSuccess:handleResponse});
  }
 
  On the page class i have:
 
  public String getTheLink() {
  Link l = _resources.createActionLink(myAction, false);
  return l.toURI();
  }
 
  public StreamResponse onMyAction() {
  CollectionCasta castas =
  _regiaoDao.getRegiao(regiao).getCastas();
 
  JSONObject jsonObject = new JSONObject();
// Add whatever info you want to send to the client
 
  return new TextStreamResponse(text/xml,
  jsonObject.toString());
  }
 
  And that's it. Works great. All you have to do now is call the
  sendRequest function from whatever javascript event you want to
  catch.
  Hope this helps.
 
  Britske wrote:
 
 
 
 
  I have a use-case in which i need to catch a onchange of of
  select-component
  on the server-side.
  The only way I know how to do that is do a javascript
  onchange='this.form.submit()' and catch the onsubmit() event on
  the
  serverside.
 
  This works well when i don't have a submit-component in the
 form
  as
  well.
  However, when I do have a submit the onchange doesn't give a
  onsubmit()
  on
  the serverside anymore.
 
  So, the onchange in the following snippet doesn't give a server
  side
  onsubmit()-event:
 
  body
  form t:type=form t:id=form id=form
   select t:type=select t:model=countryList
 t:value=country
  onchange=this.form.submit();/
  input t:type=Submit value=All results/
  /form
  /body
 
  However, the following does:
 
  body
  form t:type=form t:id=form id=form
   select t:type=select t:model=countryList
 t:value=country
  onchange=this.form.submit();/
  !--input t:type=Submit value=All results/--
  /form
  /body
 
  This isn't expected behavior since both examples do work with
  plain
  html
  form elements.
  anyone?
 
  Geert-Jan
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 --
 View this message in context:
 http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13289207
 Sent from the Tapestry - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-- 
--
TheDailyTube.com. Sign up and get the best new videos on the internet
delivered fresh to your inbox.


Re: t5 form submit not fired

2007-10-19 Thread Britske
 also.
 Shortly, here's how i did it:

 In my page i have these two javascript functions:

 function handleResponse(xhrResponse) {
 var json = xhrResponse.responseText.evalJSON(true);

 //Do whatever you want with the server response
 }
 // --

 function sendRequest() {
 new Ajax.Request('${theLink}', {asynchronous:true, 
 onSuccess:handleResponse});
 }

 On the page class i have:

 public String getTheLink() {
 Link l = _resources.createActionLink(myAction, false);
 return l.toURI();
 }

 public StreamResponse onMyAction() {
 CollectionCasta castas =
 _regiaoDao.getRegiao(regiao).getCastas();

 JSONObject jsonObject = new JSONObject();
   // Add whatever info you want to send to the client

 return new TextStreamResponse(text/xml,
 jsonObject.toString());
 }

 And that's it. Works great. All you have to do now is call the 
 sendRequest function from whatever javascript event you want to
 catch.
 Hope this helps.

 Britske wrote:
 
 
 
 
 I have a use-case in which i need to catch a onchange of of
 select-component
 on the server-side. 
 The only way I know how to do that is do a javascript
 onchange='this.form.submit()' and catch the onsubmit() event on
 the
 serverside.

 This works well when i don't have a submit-component in the form
 as
 well. 
 However, when I do have a submit the onchange doesn't give a
 onsubmit()
 on
 the serverside anymore. 

 So, the onchange in the following snippet doesn't give a server
 side
 onsubmit()-event:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 input t:type=Submit value=All results/
 /form
 /body

 However, the following does:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 !--input t:type=Submit value=All results/--
 /form
 /body

 This isn't expected behavior since both examples do work with
 plain
 html
 form elements. 
 anyone?

 Geert-Jan
   
   
   
   
   
 
 
 
 
   
   
   
   
 
 
 
   
   
   
 
 
   
   
 

   
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13289207
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



t5 form submit not fired

2007-10-18 Thread Britske

I have a use-case in which i need to catch a onchange of of select-component
on the server-side. 
The only way I know how to do that is do a javascript
onchange='this.form.submit()' and catch the onsubmit() event on the
serverside.

This works well when i don't have a submit-component in the form as well. 
However, when I do have a submit the onchange doesn't give a onsubmit() on
the serverside anymore. 

So, the onchange in the following snippet doesn't give a server side
onsubmit()-event:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/
input t:type=Submit value=All results/
/form
/body

However, the following does:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/
!--input t:type=Submit value=All results/--
/form
/body

This isn't expected behavior since both examples do work with plain html
form elements. 
anyone?

Geert-Jan
-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13269213
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-18 Thread Hugo Palma
I would suggest that you use AJAX instead of doing the form submit. 
Although the AJAX integration in T5 is still not implemented it's very 
easy to do using the provided prototype and json javascripts. I did this 
successfully for some simple events also.

Shortly, here's how i did it:

In my page i have these two javascript functions:

function handleResponse(xhrResponse) {
   var json = xhrResponse.responseText.evalJSON(true);

   //Do whatever you want with the server response
   }
   // --

   function sendRequest() {
   new Ajax.Request('${theLink}', {asynchronous:true, 
onSuccess:handleResponse});

   }

On the page class i have:

public String getTheLink() {
   Link l = _resources.createActionLink(myAction, false);
   return l.toURI();
   }

public StreamResponse onMyAction() {
   CollectionCasta castas = _regiaoDao.getRegiao(regiao).getCastas();

   JSONObject jsonObject = new JSONObject();
 // Add whatever info you want to send to the client

   return new TextStreamResponse(text/xml, jsonObject.toString());
   }

And that's it. Works great. All you have to do now is call the 
sendRequest function from whatever javascript event you want to catch.

Hope this helps.

Britske wrote:

I have a use-case in which i need to catch a onchange of of select-component
on the server-side. 
The only way I know how to do that is do a javascript

onchange='this.form.submit()' and catch the onsubmit() event on the
serverside.

This works well when i don't have a submit-component in the form as well. 
However, when I do have a submit the onchange doesn't give a onsubmit() on
the serverside anymore. 


So, the onchange in the following snippet doesn't give a server side
onsubmit()-event:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/
input t:type=Submit value=All results/
/form
/body

However, the following does:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/
!--input t:type=Submit value=All results/--
/form
/body

This isn't expected behavior since both examples do work with plain html
form elements. 
anyone?


Geert-Jan
  


Re: t5 form submit not fired

2007-10-18 Thread Britske

thanks that works partially. 

However, the event is only catched twice: 
1. on pageload (??m the sendRequest isn't called, but somehow the
getTheLink()-method is executed.)
2. the first time i send a onchange. 

However after the first onchange all other onchange-event don't get
getTheLink() executed, although sendRequest() is called on the client-side
each time. 

This is my relevant code: 

in  html: 
script
function sendRequest() 
{
alert(sendRequest reached);
new Ajax.Request('${theLink}',
{asynchronous:true,onSuccess:handleResponse});
} 
/script
...
select t:type=select t:model=themaList t:value=thema
onchange=sendRequest() name=thema id=thema tabindex=4 
class=formElement/

in the page-class: 
public String getTheLink() 
{
System.out.println(catched!!);
return catched!;
} 

Do you 've got any idea what causes this behavior? 

Thanks,
Geert-Jan




HugoPalma wrote:
 
 I would suggest that you use AJAX instead of doing the form submit. 
 Although the AJAX integration in T5 is still not implemented it's very 
 easy to do using the provided prototype and json javascripts. I did this 
 successfully for some simple events also.
 Shortly, here's how i did it:
 
 In my page i have these two javascript functions:
 
 function handleResponse(xhrResponse) {
 var json = xhrResponse.responseText.evalJSON(true);
 
 //Do whatever you want with the server response
 }
 // --
 
 function sendRequest() {
 new Ajax.Request('${theLink}', {asynchronous:true, 
 onSuccess:handleResponse});
 }
 
 On the page class i have:
 
 public String getTheLink() {
 Link l = _resources.createActionLink(myAction, false);
 return l.toURI();
 }
 
 public StreamResponse onMyAction() {
 CollectionCasta castas =
 _regiaoDao.getRegiao(regiao).getCastas();
 
 JSONObject jsonObject = new JSONObject();
   // Add whatever info you want to send to the client
 
 return new TextStreamResponse(text/xml, jsonObject.toString());
 }
 
 And that's it. Works great. All you have to do now is call the 
 sendRequest function from whatever javascript event you want to catch.
 Hope this helps.
 
 Britske wrote:
 I have a use-case in which i need to catch a onchange of of
 select-component
 on the server-side. 
 The only way I know how to do that is do a javascript
 onchange='this.form.submit()' and catch the onsubmit() event on the
 serverside.

 This works well when i don't have a submit-component in the form as well. 
 However, when I do have a submit the onchange doesn't give a onsubmit()
 on
 the serverside anymore. 

 So, the onchange in the following snippet doesn't give a server side
 onsubmit()-event:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 input t:type=Submit value=All results/
 /form
 /body

 However, the following does:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 !--input t:type=Submit value=All results/--
 /form
 /body

 This isn't expected behavior since both examples do work with plain html
 form elements. 
 anyone?

 Geert-Jan
   
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13271036
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-18 Thread Hugo Palma

That's the way it's supposed to be.
You only see the getTheLink method executed once because that what it 
need to replace ${theLink} in your template with the correct link that 
is returned from your method. This is done once when the page renders. 
If you look at the rendered page source you won't see ${theLink} there, 
instead you will the the generated link to your listener.


Anyway, does it really matter how many times the getTheLink method is 
invoked ? I think not.  What really matters is that the listener method 
to which your getTheLink method should be returning the URL to is called 
whenever you call the sendRequest function.



Britske wrote:
thanks that works partially. 

However, the event is only catched twice: 
1. on pageload (??m the sendRequest isn't called, but somehow the

getTheLink()-method is executed.)
2. the first time i send a onchange. 


However after the first onchange all other onchange-event don't get
getTheLink() executed, although sendRequest() is called on the client-side
each time. 

This is my relevant code: 

in  html: 
script
function sendRequest() 
{

alert(sendRequest reached);
new Ajax.Request('${theLink}',
{asynchronous:true,onSuccess:handleResponse});
} 
/script

...
select t:type=select t:model=themaList t:value=thema
onchange=sendRequest() name=thema id=thema tabindex=4 
class=formElement/


in the page-class: 
	public String getTheLink() 
	{

System.out.println(catched!!);
return catched!;
	} 

Do you 've got any idea what causes this behavior? 


Thanks,
Geert-Jan




HugoPalma wrote:
  
I would suggest that you use AJAX instead of doing the form submit. 
Although the AJAX integration in T5 is still not implemented it's very 
easy to do using the provided prototype and json javascripts. I did this 
successfully for some simple events also.

Shortly, here's how i did it:

In my page i have these two javascript functions:

function handleResponse(xhrResponse) {
var json = xhrResponse.responseText.evalJSON(true);

//Do whatever you want with the server response
}
// --

function sendRequest() {
new Ajax.Request('${theLink}', {asynchronous:true, 
onSuccess:handleResponse});

}

On the page class i have:

public String getTheLink() {
Link l = _resources.createActionLink(myAction, false);
return l.toURI();
}

public StreamResponse onMyAction() {
CollectionCasta castas =
_regiaoDao.getRegiao(regiao).getCastas();

JSONObject jsonObject = new JSONObject();
  // Add whatever info you want to send to the client

return new TextStreamResponse(text/xml, jsonObject.toString());
}

And that's it. Works great. All you have to do now is call the 
sendRequest function from whatever javascript event you want to catch.

Hope this helps.

Britske wrote:


I have a use-case in which i need to catch a onchange of of
select-component
on the server-side. 
The only way I know how to do that is do a javascript

onchange='this.form.submit()' and catch the onsubmit() event on the
serverside.

This works well when i don't have a submit-component in the form as well. 
However, when I do have a submit the onchange doesn't give a onsubmit()

on
the serverside anymore. 


So, the onchange in the following snippet doesn't give a server side
onsubmit()-event:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/
input t:type=Submit value=All results/
/form
/body

However, the following does:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/
!--input t:type=Submit value=All results/--
/form
/body

This isn't expected behavior since both examples do work with plain html
form elements. 
anyone?


Geert-Jan
  
  



  


Re: t5 form submit not fired

2007-10-18 Thread Britske
://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13271792
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-18 Thread Hugo Palma
The method i suggested is implemented so that you don't have to submit 
the form. That's what AJAX is all about, you make a request to the 
server and then update a portion of your page based on the response from 
the server using javascript. There's no page reload of for submission.


Britske wrote:

yeah indeed it is only called once when the template is rendered, I
discovered now. 
However i don't need to return a dynamic url or whatever based on the
getTheLink-method. 


what I need is a way to reliably catch a event at the server/java side (in
this case onChange) every time that event occurs. I don't want to submit my
form when that happens (otherwise I could use the method you suggested) but
I want to update some information on the current page and stay there. 


This means that i have to redirect to my currentpage with a couple of
queryparameters in the url which depend on the selected fields in the form. 


hmm, the more i think about it, I don't think i really need to catch the
event server-side. I just redirect to the current page on onChange using
javascript:window.location=... and parse the querystrings correctly in it. 

hope this makes sense, 
thanks!

Geert-Jan



HugoPalma wrote:
  

That's the way it's supposed to be.
You only see the getTheLink method executed once because that what it 
need to replace ${theLink} in your template with the correct link that 
is returned from your method. This is done once when the page renders. 
If you look at the rendered page source you won't see ${theLink} there, 
instead you will the the generated link to your listener.


Anyway, does it really matter how many times the getTheLink method is 
invoked ? I think not.  What really matters is that the listener method 
to which your getTheLink method should be returning the URL to is called 
whenever you call the sendRequest function.



Britske wrote:

thanks that works partially. 

However, the event is only catched twice: 
1. on pageload (??m the sendRequest isn't called, but somehow the

getTheLink()-method is executed.)
2. the first time i send a onchange. 


However after the first onchange all other onchange-event don't get
getTheLink() executed, although sendRequest() is called on the
client-side
each time. 

This is my relevant code: 

in  html: 
script
function sendRequest() 
{

alert(sendRequest reached);
new Ajax.Request('${theLink}',
{asynchronous:true,onSuccess:handleResponse});
} 
/script

...
select t:type=select t:model=themaList t:value=thema
onchange=sendRequest() name=thema id=thema tabindex=4 
class=formElement/


in the page-class: 
	public String getTheLink() 
	{

System.out.println(catched!!);
return catched!;
	} 

Do you 've got any idea what causes this behavior? 


Thanks,
Geert-Jan




HugoPalma wrote:
  
  
I would suggest that you use AJAX instead of doing the form submit. 
Although the AJAX integration in T5 is still not implemented it's very 
easy to do using the provided prototype and json javascripts. I did this 
successfully for some simple events also.

Shortly, here's how i did it:

In my page i have these two javascript functions:

function handleResponse(xhrResponse) {
var json = xhrResponse.responseText.evalJSON(true);

//Do whatever you want with the server response
}
// --

function sendRequest() {
new Ajax.Request('${theLink}', {asynchronous:true, 
onSuccess:handleResponse});

}

On the page class i have:

public String getTheLink() {
Link l = _resources.createActionLink(myAction, false);
return l.toURI();
}

public StreamResponse onMyAction() {
CollectionCasta castas =
_regiaoDao.getRegiao(regiao).getCastas();

JSONObject jsonObject = new JSONObject();
  // Add whatever info you want to send to the client

return new TextStreamResponse(text/xml,
jsonObject.toString());
}

And that's it. Works great. All you have to do now is call the 
sendRequest function from whatever javascript event you want to catch.

Hope this helps.

Britske wrote:



I have a use-case in which i need to catch a onchange of of
select-component
on the server-side. 
The only way I know how to do that is do a javascript

onchange='this.form.submit()' and catch the onsubmit() event on the
serverside.

This works well when i don't have a submit-component in the form as
well. 
However, when I do have a submit the onchange doesn't give a onsubmit()

on
the serverside anymore. 


So, the onchange in the following snippet doesn't give a server side
onsubmit()-event:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/
input t:type=Submit value=All results/
/form
/body

However, the following does:

body
form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
onchange=this.form.submit();/

Re: t5 form submit not fired

2007-10-18 Thread Britske
-component in the form as
 well. 
 However, when I do have a submit the onchange doesn't give a
 onsubmit()
 on
 the serverside anymore. 

 So, the onchange in the following snippet doesn't give a server side
 onsubmit()-event:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 input t:type=Submit value=All results/
 /form
 /body

 However, the following does:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 !--input t:type=Submit value=All results/--
 /form
 /body

 This isn't expected behavior since both examples do work with plain
 html
 form elements. 
 anyone?

 Geert-Jan
   
   
   
 
 
   
   
 

   
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13278247
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-18 Thread Hugo Palma
The example i provided fires the call to the server whenever the 
javascript function is called.
So, if you call the function from an onchange event on a select the 
method will be called every time you change the selectbox.


select onchange=sendRequest() ...

/select

Britske wrote:

Yeah i see/know, but for the discussion say that I want AJAX to change a
portion of the page every time a onChange-event fires (the server-side
method CallWhenOnChangeIsFired() should be called through AJAX whenever this
happens ans this method changes sets the necessary fields / performs a
search, etc. )

The example you provided in the example only fires once  but I need it to
fire every time a onChange happens. How to do this? 

Thanks in advance, 
Geert-Jan
 



HugoPalma wrote:
  
The method i suggested is implemented so that you don't have to submit 
the form. That's what AJAX is all about, you make a request to the 
server and then update a portion of your page based on the response from 
the server using javascript. There's no page reload of for submission.


Britske wrote:


yeah indeed it is only called once when the template is rendered, I
discovered now. 
However i don't need to return a dynamic url or whatever based on the
getTheLink-method. 


what I need is a way to reliably catch a event at the server/java side
(in
this case onChange) every time that event occurs. I don't want to submit
my
form when that happens (otherwise I could use the method you suggested)
but
I want to update some information on the current page and stay there. 


This means that i have to redirect to my currentpage with a couple of
queryparameters in the url which depend on the selected fields in the
form. 


hmm, the more i think about it, I don't think i really need to catch the
event server-side. I just redirect to the current page on onChange using
javascript:window.location=... and parse the querystrings correctly in
it. 

hope this makes sense, 
thanks!

Geert-Jan



HugoPalma wrote:
  
  

That's the way it's supposed to be.
You only see the getTheLink method executed once because that what it 
need to replace ${theLink} in your template with the correct link that 
is returned from your method. This is done once when the page renders. 
If you look at the rendered page source you won't see ${theLink} there, 
instead you will the the generated link to your listener.


Anyway, does it really matter how many times the getTheLink method is 
invoked ? I think not.  What really matters is that the listener method 
to which your getTheLink method should be returning the URL to is called 
whenever you call the sendRequest function.



Britske wrote:


thanks that works partially. 

However, the event is only catched twice: 
1. on pageload (??m the sendRequest isn't called, but somehow the

getTheLink()-method is executed.)
2. the first time i send a onchange. 


However after the first onchange all other onchange-event don't get
getTheLink() executed, although sendRequest() is called on the
client-side
each time. 

This is my relevant code: 

in  html: 
script
function sendRequest() 
{

alert(sendRequest reached);
new Ajax.Request('${theLink}',
{asynchronous:true,onSuccess:handleResponse});
} 
/script

...
select t:type=select t:model=themaList t:value=thema
onchange=sendRequest() name=thema id=thema tabindex=4 
class=formElement/


in the page-class: 
	public String getTheLink() 
	{

System.out.println(catched!!);
return catched!;
	} 

Do you 've got any idea what causes this behavior? 


Thanks,
Geert-Jan




HugoPalma wrote:
  
  
  
I would suggest that you use AJAX instead of doing the form submit. 
Although the AJAX integration in T5 is still not implemented it's very 
easy to do using the provided prototype and json javascripts. I did
this 
successfully for some simple events also.

Shortly, here's how i did it:

In my page i have these two javascript functions:

function handleResponse(xhrResponse) {
var json = xhrResponse.responseText.evalJSON(true);

//Do whatever you want with the server response
}
// --

function sendRequest() {
new Ajax.Request('${theLink}', {asynchronous:true, 
onSuccess:handleResponse});

}

On the page class i have:

public String getTheLink() {
Link l = _resources.createActionLink(myAction, false);
return l.toURI();
}

public StreamResponse onMyAction() {
CollectionCasta castas =
_regiaoDao.getRegiao(regiao).getCastas();

JSONObject jsonObject = new JSONObject();
  // Add whatever info you want to send to the client

return new TextStreamResponse(text/xml,
jsonObject.toString());
}

And that's it. Works great. All you have to do now is call the 
sendRequest function from whatever javascript event you want to catch.

Hope this helps.

Britske wrote:




I have a use-case in which i need to 

Re: t5 form submit not fired

2007-10-18 Thread Britske
 whatever info you want to send to the client

 return new TextStreamResponse(text/xml,
 jsonObject.toString());
 }

 And that's it. Works great. All you have to do now is call the 
 sendRequest function from whatever javascript event you want to
 catch.
 Hope this helps.

 Britske wrote:
 
 
 
 I have a use-case in which i need to catch a onchange of of
 select-component
 on the server-side. 
 The only way I know how to do that is do a javascript
 onchange='this.form.submit()' and catch the onsubmit() event on the
 serverside.

 This works well when i don't have a submit-component in the form as
 well. 
 However, when I do have a submit the onchange doesn't give a
 onsubmit()
 on
 the serverside anymore. 

 So, the onchange in the following snippet doesn't give a server
 side
 onsubmit()-event:

 body
 form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 input t:type=Submit value=All results/
 /form
 /body

 However, the following does:

 body
 form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 !--input t:type=Submit value=All results/--
 /form
 /body

 This isn't expected behavior since both examples do work with plain
 html
 form elements. 
 anyone?

 Geert-Jan
   
   
   
   
 
 
 
   
   
   
 
 
   
   
 

   
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13279966
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-18 Thread Britske
 in the following snippet doesn't give a server side
 onsubmit()-event:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 input t:type=Submit value=All results/
 /form
 /body

 However, the following does:

 body
 form t:type=form t:id=form id=form
  select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 !--input t:type=Submit value=All results/--
 /form
 /body

 This isn't expected behavior since both examples do work with plain
 html
 form elements. 
 anyone?

 Geert-Jan
   
   
   
 
 
   
   
 

   
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13280735
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-18 Thread Hugo Palma
Why do you say a redirect happens ? Does your page refresh when you 
change the selectbox value ?
It won't refresh because all your doing is call a javascript function. 
There's no redirect.


Britske wrote:

since your example effectively calls a ActionLink through AJAX, a redirect
DOES happen. It's the result of the ActionLink. If I'm seeing this correctly
what then is the advantage of doing a call through AJAX or a form.submit()
for the discussed purpose, since both result in a redirect?

//Geert-Jan



HugoPalma wrote:
  
The method i suggested is implemented so that you don't have to submit 
the form. That's what AJAX is all about, you make a request to the 
server and then update a portion of your page based on the response from 
the server using javascript. There's no page reload of for submission.


Britske wrote:


yeah indeed it is only called once when the template is rendered, I
discovered now. 
However i don't need to return a dynamic url or whatever based on the
getTheLink-method. 


what I need is a way to reliably catch a event at the server/java side
(in
this case onChange) every time that event occurs. I don't want to submit
my
form when that happens (otherwise I could use the method you suggested)
but
I want to update some information on the current page and stay there. 


This means that i have to redirect to my currentpage with a couple of
queryparameters in the url which depend on the selected fields in the
form. 


hmm, the more i think about it, I don't think i really need to catch the
event server-side. I just redirect to the current page on onChange using
javascript:window.location=... and parse the querystrings correctly in
it. 

hope this makes sense, 
thanks!

Geert-Jan



HugoPalma wrote:
  
  

That's the way it's supposed to be.
You only see the getTheLink method executed once because that what it 
need to replace ${theLink} in your template with the correct link that 
is returned from your method. This is done once when the page renders. 
If you look at the rendered page source you won't see ${theLink} there, 
instead you will the the generated link to your listener.


Anyway, does it really matter how many times the getTheLink method is 
invoked ? I think not.  What really matters is that the listener method 
to which your getTheLink method should be returning the URL to is called 
whenever you call the sendRequest function.



Britske wrote:


thanks that works partially. 

However, the event is only catched twice: 
1. on pageload (??m the sendRequest isn't called, but somehow the

getTheLink()-method is executed.)
2. the first time i send a onchange. 


However after the first onchange all other onchange-event don't get
getTheLink() executed, although sendRequest() is called on the
client-side
each time. 

This is my relevant code: 

in  html: 
script
function sendRequest() 
{

alert(sendRequest reached);
new Ajax.Request('${theLink}',
{asynchronous:true,onSuccess:handleResponse});
} 
/script

...
select t:type=select t:model=themaList t:value=thema
onchange=sendRequest() name=thema id=thema tabindex=4 
class=formElement/


in the page-class: 
	public String getTheLink() 
	{

System.out.println(catched!!);
return catched!;
	} 

Do you 've got any idea what causes this behavior? 


Thanks,
Geert-Jan




HugoPalma wrote:
  
  
  
I would suggest that you use AJAX instead of doing the form submit. 
Although the AJAX integration in T5 is still not implemented it's very 
easy to do using the provided prototype and json javascripts. I did
this 
successfully for some simple events also.

Shortly, here's how i did it:

In my page i have these two javascript functions:

function handleResponse(xhrResponse) {
var json = xhrResponse.responseText.evalJSON(true);

//Do whatever you want with the server response
}
// --

function sendRequest() {
new Ajax.Request('${theLink}', {asynchronous:true, 
onSuccess:handleResponse});

}

On the page class i have:

public String getTheLink() {
Link l = _resources.createActionLink(myAction, false);
return l.toURI();
}

public StreamResponse onMyAction() {
CollectionCasta castas =
_regiaoDao.getRegiao(regiao).getCastas();

JSONObject jsonObject = new JSONObject();
  // Add whatever info you want to send to the client

return new TextStreamResponse(text/xml,
jsonObject.toString());
}

And that's it. Works great. All you have to do now is call the 
sendRequest function from whatever javascript event you want to catch.

Hope this helps.

Britske wrote:




I have a use-case in which i need to catch a onchange of of
select-component
on the server-side. 
The only way I know how to do that is do a javascript

onchange='this.form.submit()' and catch the onsubmit() event on the
serverside.

This works well when i don't have a submit-component in 

Re: t5 form submit not fired

2007-10-18 Thread Britske
 you want to send to the client

 return new TextStreamResponse(text/xml,
 jsonObject.toString());
 }

 And that's it. Works great. All you have to do now is call the 
 sendRequest function from whatever javascript event you want to
 catch.
 Hope this helps.

 Britske wrote:
 
 
 
 I have a use-case in which i need to catch a onchange of of
 select-component
 on the server-side. 
 The only way I know how to do that is do a javascript
 onchange='this.form.submit()' and catch the onsubmit() event on the
 serverside.

 This works well when i don't have a submit-component in the form as
 well. 
 However, when I do have a submit the onchange doesn't give a
 onsubmit()
 on
 the serverside anymore. 

 So, the onchange in the following snippet doesn't give a server
 side
 onsubmit()-event:

 body
 form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 input t:type=Submit value=All results/
 /form
 /body

 However, the following does:

 body
 form t:type=form t:id=form id=form
select t:type=select t:model=countryList t:value=country
 onchange=this.form.submit();/
 !--input t:type=Submit value=All results/--
 /form
 /body

 This isn't expected behavior since both examples do work with plain
 html
 form elements. 
 anyone?

 Geert-Jan
   
   
   
   
 
 
 
   
   
   
 
 
   
   
 

   
 
 

-- 
View this message in context: 
http://www.nabble.com/t5-form-submit-not-fired-tf4645307.html#a13283671
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: t5 form submit not fired

2007-10-18 Thread Hugo Palma
If your getting a page redirect then your doing something wrong in your 
code.

If you post it i can try and find the problem.

Britske wrote:
after the onchange occurs, this is what happens in my app: 


1. onMyAction is executed()  (this is an actionlink which returns nothing
(void) which results in a client-side redirect to the same page 
(as per documentation:

http://tapestry.apache.org/tapestry5/tapestry-core/guide/pagenav.html )

2. onActivate() is executed on the server, which I think proofs that there
was indeed a redirect. 


please don't get me wrong, I still think it's an elegant solution...

//Geert-Jan


HugoPalma wrote:
  
Why do you say a redirect happens ? Does your page refresh when you 
change the selectbox value ?
It won't refresh because all your doing is call a javascript function. 
There's no redirect.


Britske wrote:


since your example effectively calls a ActionLink through AJAX, a
redirect
DOES happen. It's the result of the ActionLink. If I'm seeing this
correctly
what then is the advantage of doing a call through AJAX or a
form.submit()
for the discussed purpose, since both result in a redirect?

//Geert-Jan



HugoPalma wrote:
  
  
The method i suggested is implemented so that you don't have to submit 
the form. That's what AJAX is all about, you make a request to the 
server and then update a portion of your page based on the response from 
the server using javascript. There's no page reload of for submission.


Britske wrote:



yeah indeed it is only called once when the template is rendered, I
discovered now. 
However i don't need to return a dynamic url or whatever based on the
getTheLink-method. 


what I need is a way to reliably catch a event at the server/java side
(in
this case onChange) every time that event occurs. I don't want to
submit
my
form when that happens (otherwise I could use the method you suggested)
but
I want to update some information on the current page and stay there. 


This means that i have to redirect to my currentpage with a couple of
queryparameters in the url which depend on the selected fields in the
form. 


hmm, the more i think about it, I don't think i really need to catch
the
event server-side. I just redirect to the current page on onChange
using
javascript:window.location=... and parse the querystrings correctly in
it. 

hope this makes sense, 
thanks!

Geert-Jan



HugoPalma wrote:
  
  
  

That's the way it's supposed to be.
You only see the getTheLink method executed once because that what it 
need to replace ${theLink} in your template with the correct link that 
is returned from your method. This is done once when the page renders. 
If you look at the rendered page source you won't see ${theLink}
there, 
instead you will the the generated link to your listener.


Anyway, does it really matter how many times the getTheLink method is 
invoked ? I think not.  What really matters is that the listener
method 
to which your getTheLink method should be returning the URL to is
called 
whenever you call the sendRequest function.



Britske wrote:



thanks that works partially. 

However, the event is only catched twice: 
1. on pageload (??m the sendRequest isn't called, but somehow the

getTheLink()-method is executed.)
2. the first time i send a onchange. 


However after the first onchange all other onchange-event don't get
getTheLink() executed, although sendRequest() is called on the
client-side
each time. 

This is my relevant code: 

in  html: 
script
function sendRequest() 
{

alert(sendRequest reached);
new Ajax.Request('${theLink}',
{asynchronous:true,onSuccess:handleResponse});
} 
/script

...
select t:type=select t:model=themaList t:value=thema
onchange=sendRequest() name=thema id=thema tabindex=4 
class=formElement/


in the page-class: 
	public String getTheLink() 
	{

System.out.println(catched!!);
return catched!;
	} 

Do you 've got any idea what causes this behavior? 


Thanks,
Geert-Jan




HugoPalma wrote:
  
  
  
  
I would suggest that you use AJAX instead of doing the form submit. 
Although the AJAX integration in T5 is still not implemented it's
very 
easy to do using the provided prototype and json javascripts. I did
this 
successfully for some simple events also.

Shortly, here's how i did it:

In my page i have these two javascript functions:

function handleResponse(xhrResponse) {
var json = xhrResponse.responseText.evalJSON(true);

//Do whatever you want with the server response
}
// --

function sendRequest() {
new Ajax.Request('${theLink}', {asynchronous:true, 
onSuccess:handleResponse});

}

On the page class i have:

public String getTheLink() {
Link l = _resources.createActionLink(myAction, false);
return l.toURI();
}

public StreamResponse onMyAction() {
CollectionCasta castas =

Re: t5 form submit not fired

2007-10-18 Thread Nick Westgate

Hugo defined myAction as returning a StreamResponse - no redirect.
Geert-Jan says myAction returns void - a redirect occurs.

Cheers,
Nick.


Hugo Palma wrote:
If your getting a page redirect then your doing something wrong in your 
code.

If you post it i can try and find the problem.

Britske wrote:

after the onchange occurs, this is what happens in my app:
1. onMyAction is executed()  (this is an actionlink which returns nothing
(void) which results in a client-side redirect to the same page (as 
per documentation:

http://tapestry.apache.org/tapestry5/tapestry-core/guide/pagenav.html )

2. onActivate() is executed on the server, which I think proofs that 
there

was indeed a redirect.
please don't get me wrong, I still think it's an elegant solution...

//Geert-Jan


HugoPalma wrote:
 
Why do you say a redirect happens ? Does your page refresh when you 
change the selectbox value ?
It won't refresh because all your doing is call a javascript 
function. There's no redirect.


Britske wrote:
   

since your example effectively calls a ActionLink through AJAX, a
redirect
DOES happen. It's the result of the ActionLink. If I'm seeing this
correctly
what then is the advantage of doing a call through AJAX or a
form.submit()
for the discussed purpose, since both result in a redirect?

//Geert-Jan



HugoPalma wrote:
   
The method i suggested is implemented so that you don't have to 
submit the form. That's what AJAX is all about, you make a request 
to the server and then update a portion of your page based on the 
response from the server using javascript. There's no page reload 
of for submission.


Britske wrote:
   

yeah indeed it is only called once when the template is rendered, I
discovered now. However i don't need to return a dynamic url or 
whatever based on the

getTheLink-method.
what I need is a way to reliably catch a event at the server/java 
side

(in
this case onChange) every time that event occurs. I don't want to
submit
my
form when that happens (otherwise I could use the method you 
suggested)

but
I want to update some information on the current page and stay there.
This means that i have to redirect to my currentpage with a couple of
queryparameters in the url which depend on the selected fields in the
form.
hmm, the more i think about it, I don't think i really need to catch
the
event server-side. I just redirect to the current page on onChange
using
javascript:window.location=... and parse the querystrings 
correctly in

it.
hope this makes sense, thanks!
Geert-Jan



HugoPalma wrote:
 

That's the way it's supposed to be.
You only see the getTheLink method executed once because that 
what it need to replace ${theLink} in your template with the 
correct link that is returned from your method. This is done once 
when the page renders. If you look at the rendered page source 
you won't see ${theLink}

there, instead you will the the generated link to your listener.

Anyway, does it really matter how many times the getTheLink 
method is invoked ? I think not.  What really matters is that the 
listener
method to which your getTheLink method should be returning the 
URL to is

called whenever you call the sendRequest function.


Britske wrote:
   

thanks that works partially.
However, the event is only catched twice: 1. on pageload (??m 
the sendRequest isn't called, but somehow the

getTheLink()-method is executed.)
2. the first time i send a onchange.
However after the first onchange all other onchange-event don't get
getTheLink() executed, although sendRequest() is called on the
client-side
each time.
This is my relevant code:
in  html: script
function sendRequest() {
alert(sendRequest reached);
new Ajax.Request('${theLink}',
{asynchronous:true,onSuccess:handleResponse});
} /script
...
select t:type=select t:model=themaList t:value=thema
onchange=sendRequest() name=thema id=thema tabindex=4 
class=formElement/


in the page-class: public String getTheLink() {
System.out.println(catched!!);
return catched!;
}
Do you 've got any idea what causes this behavior?
Thanks,
Geert-Jan




HugoPalma wrote:
   
I would suggest that you use AJAX instead of doing the form 
submit. Although the AJAX integration in T5 is still not 
implemented it's
very easy to do using the provided prototype and json 
javascripts. I did

this successfully for some simple events also.
Shortly, here's how i did it:

In my page i have these two javascript functions:

function handleResponse(xhrResponse) {
var json = xhrResponse.responseText.evalJSON(true);

//Do whatever you want with the server response
}
// --

function sendRequest() {
new Ajax.Request('${theLink}', {asynchronous:true, 
onSuccess:handleResponse});

}

On the page class i have:

public String getTheLink() {
Link l = _resources.createActionLink(myAction, false);