[SOLVED] Getting a DIV's content and keeping page context

Yann Bizeul <[email protected]>
Newsgroups gmane.comp.web.webobjects.devel
Message-ID <[email protected]>
> As you can see, I perform a GET request on the AddressComponent  
> directly, I think that is where I'm wrong, because doing this does  
> get AddressComponent as the root component where it was a  
> subcomponent before, the text field names are completely out of  
> context once the DIV is reloaded.
The solution was quite simple, I just had to configure the "name"  
binding to a unique string in the form. WebObjects is no longer  
responsible of the field uniqueness, but every bindings still works.

Yann Bizeul • yann at tynsoe.org
Cocoa Developer

Le 15 août 06 à 19:33, Yann Bizeul a écrit :

> I guess this is  a traditionnal question about webobjects, but I  
> did not find an answer in the archives and AJAX frameworks I found  
> are poorly documented, since I am a beginner, I did not succeed to  
> use them.
>
> The problem is quite simple, I have a page containing :
> - 1 WOPopUpButton with a list of 60+ countries
> - 1 DIV containig WOTextFields with the address parts for the  
> chosen country (City, state, Zip, etc...)
>
> This div is a WOComponent (AddressComponent) I call in my page,  
> with an "address" binding, according to the country set in the  
> address, it diplays the different field for that country.
> The reason why I'm doing this is that I want to avoid reloading the  
> whole page, I want my site to be the very ergonomic, and I want to  
> be able to dynamically reload DIV containins dynamic WO elements.
>
> When the page is initially requested, it embed the  
> AddressComponent, and everything works fine, I can submit the form  
> and bindings are fully functionnal.
>
> Then I change the country, the changeCountry method is called (see  
> javascript attached at the end of the mail).
>
> As you can see, I perform a GET request on the AddressComponent  
> directly, I think that is where I'm wrong, because doing this does  
> get AddressComponent as the root component where it was a  
> subcomponent before, the text field names are completely out of  
> context once the DIV is reloaded.
>
> For example, this text field in the original page
> <input size="15" type="text" name="7.6.1.4.0.CityComponent">
>
> becomes :
> <input size="15" type="text" name="1.4.0.CityComponent">
>
> I hope things are a bit clearer and you will be able to help me :-)
>
> <script type="text/javascript">
> function changeAddressCountry(code)
> {
> 	http = getHTTPObject();
> 	http.open("Get","<webobject name="ResourceURL1"></webobject>? 
> countryCode=" + code,false);
>   	http.send(null);
> 	if (http.status==200) {
> 		var div_handle = document.getElementById("address");
> 		if(div_handle){
>     			div_handle.innerHTML =''+http.responseText;
> 			alert(http.responseText);
> 		}
> 	}
> }
>
> function getHTTPObject() {
>   var xmlhttp;
>   /*@cc_on
>   @if (@_jscript_version >= 5)
>     try {
>       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
>     } catch (e) {
>       try {
>         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
>       } catch (E) {
>         xmlhttp = false;
>       }
>     }
>   @else
>   xmlhttp = false;
>   @end @*/
>   if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
>     try {
>       xmlhttp = new XMLHttpRequest();
>     } catch (e) {
>       xmlhttp = false;
>     }
>   }
>   return xmlhttp;
> }
> </script>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.