On Friday, June 1, 2012 2:03:23 PM UTC-4, angle wrote:
>
> Thanks for your response, I've answered your points below:  
>
>>  
>>
>   #response.ajax = \ 
>>>     'web2py_component("%s","patient",ajax=True,vars=vars1)' % URL 
>>> ('patient')
>>
>> I think this should be response.js rather than response.ajax. 
>>
>
> This code is copied from the example 'Designing Modular Applications' on 
> page 94 of the web2py book.
>

Unfortunately, I think there are a number of errors in that example, one of 
which is that it should be response.js, not response.ajax.
 

>   In that example it is called when a forms 'onaccept' event is triggered. 
> In my code it is called in my 'viewPatient' function that is called by 
> setting the webGrid's crud_function... (grid.crud_function = 
> 'viewPatient'). I thought that these were similar calls, so that 
> response.ajax should work in the same way. Are they not the same? ???
>

In the book example, response.ajax (which should be response.js) is set in 
the edit_items() function, which is always called as an Ajax component. You 
are setting it in your view() function, but I can't see where that function 
is actually called, so I don't know if it is being called as an Ajax 
component or as a regular web page.
  

> Also, response.js is only used if the action that sets it is being called 
>> as a web2py component -- is that the case here? 
>>
>  
> I believe so, but I am not 100% sure. It appears that the response.ajax is 
> being set via a call to 'web2py_component(...)' . Is that correct?
>

No, you are setting response.ajax to "web2py_component(...)" -- that's not 
what I'm talking about. The question is whether the function in which 
response.js is being set is itself being accessed by a call to 
web2py_component() on the client side. It is being set in your view() 
function, so the question is how is the view() function being called?

Finally, web2py_component() does not take an ajax or vars argument. If you 
>> want vars included in the URL, then pass it to the URL function.
>>
>
> The URL is pointing to a div element -  (as in the example from the book).
>

I think there is an error in the book -- it mistakenly builds a URL that 
refers to a div id rather than the name of the controller function. Is that 
what you're talking about?
 

> I've tried 'URL('patient', vars=vars1)' (whilst assigning to response.ajax 
> and response.js) and I get a 'not all arguments converted during string 
> formatting' error.
>

Show the full code.

Anthony 

Reply via email to