>
> What do you mean with bei -The code isn't quit right-. 
> I don't have get_countries as a component inside print_countries as far as 
> i know. 
>

Yes, the LOAD() helper creates a component. In your print_countries view 
file, you have this line:

{{=LOAD('default','get_countriespdf.load',ajax=True,target='get_countriespdf')}}


This doesn't make sense, as get_countriespdf returns a download file, so it 
would not be a component on the page. Rather it is the print_countries 
action that should be converted to a component (so the form submission 
happens via Ajax). So, something like:

def parent_page():
    return dict(countries_component=LOAD('default', 'print_countries.load', 
ajax=True))

parent_page.html view:

{{extend 'layout.html'}}
{{=countries_component}}

Then you'll need a print_countries.load view that does not extend the 
layout.

Of course, you can change the name of parent_page to print_countries, and 
then rename your current print_countries function to something else (the 
name doesn't matter too much, as the user will not see its URL in the 
browser, as it is an Ajax component).

Anthony

Do i have to make a view file for the get_countries function?
> I am new to web2py and web programing (after years of developing Desktop 
> database applications) so i need examples or more Information.
> Where do i put the LOAD(..., ajax=True and what is the procedure behind 
> the seen? Please give me an example.
>
> You have been very helpful, thank you.
>
> Karl
>
> Am Montag, 9. November 2015 13:25:46 UTC+1 schrieb Anthony:
>
>> On Monday, November 9, 2015 at 3:16:46 AM UTC-5, Karl Florian wrote:
>>>
>>> Thank you for your very good suggestions.
>>> Here is what i tried:
>>> Putting the script into my print_countries view worked good.
>>> The only Thing that bothered me was that i had to click the submit 
>>> Button twice.
>>>
>>
>> I see the problem. You only have to click submit once the first time. But 
>> because submission does not cause the page to reload, you're stuck with the 
>> same CSRF token in the form, so when you attempt to submit a second time, 
>> the CSRF check fails, and instead you get a new page with a fresh form (and 
>> fresh CSRF token) -- and then the next submsit works. If you don't need 
>> CSRF protection for this form (which you may not, given that it doesn't 
>> appear to be inserting anything to the database but only requesting 
>> information), you can disable it via form.process(session=None). Or you can 
>> implement your own CSRF protection with a multi-use token.
>>  
>>
>>> The Problems i had using your alternative solution are best explained in 
>>> my attachment.
>>>
>>
>> The code isn't quite right. You have get_countries as a component inside 
>> print_countries. Instead, print_countries should be an Ajax component 
>> inside a parent page (i.e., you'll have to create a new parent page whose 
>> only content is the print_countries component). Then get_countries is 
>> called via the Javascript returned by print_countries.
>>
>> Anthony
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to