[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SOLVED] Getting a DIV's content and keeping page context
> 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>