sorry to be so late ....

if you have {{=URL('tree','stree','index')}} anywhere in the view it gets 
translated to:

/appname/tree/stree/index

Now, if you check your source, you should see it.
So, try to "hardcode" that url without using {{=URL()}} syntax and check if 
your javascript is working.

Actually, it won't :P. No fault from web2py side, but from the javascript 
one....

 bind("select_node.jstree", function (event, data) { "xxx" } is a function 
where you have to "decode" data to something useful....
as you said, data.rslt.obj.attr("id") contains the id value of the selected 
item.
If you want to pass that to /appname/tree/stree/index, you need to "append" 
that to the url.....
Prepare the index() function as :

def index():
      record_id = request.args(0)
      .......
      return dict(form=form) 
 
so the form returns the form for the correct record if called as 
/appname/tree/stree/index/the_actual_selected_id

Then, you must "prepare" a div into the page where you want the form to be 
loaded, as 

<div id="theformdiv"></div>

This is merely a placeholder, you can put it where you want, as long as it 
is in the same page where the tree is loaded, and where you can then put 
the following javascript snippet


bind("select_node.jstree", function (event, data) {     
    var baseurl = "{{=URL('tree', 'stree', 'index', extension='load')}}" + 
"/" + data.rslt.obj.attr("id");
    web2py_component(baseurl, 'theformdiv');
  } 

the "web2py_component" part calls the 
/appname/tree/stree/index/theselectedid with ajax and place the obtained 
result into the div with id = #theformdiv

Il giorno mercoledì 18 aprile 2012 00:27:51 UTC+2, Simon Ashley ha scritto:
>
> Thanks but unfortunately this doesn't help as the controller needs to be 
> called from within the view.
>
> (what we believe to be normal python escaping techniques i.e. {{ ... }} 
> doesn't seems to be returning appropriate responses.
> Have been stuck on this for weeks now. 
> While our javascript skills may be basic, would have thought we would have 
> come across example code by now)
>
> On Wednesday, 18 April 2012 00:18:25 UTC+10, villas wrote:
>>
>> From the book:
>>
>> response.render(view, vars): a method used to call the view explicitly 
>> inside
>> the controller. view is an optional parameter which is the name of the 
>> view
>> file, vars is a dictionary of named values passed to the view.
>>
>> HTH David
>>
>

Reply via email to