Hi Anthony,
This solution you mention is, with some minor changes, still working in the
current version. I've managed to get the change working in the 2.12.3
version of web2py.js:
Change function trap_form to:
trap_form: function(action, target) {
/* traps any LOADed form */
$('#' + target + ' form').each(function(i) {
var form = $(this);
if(form.hasClass('no_trap')) {
return;
}
form.attr('data-w2p_target', target);
var url = form.attr('action');
if((url === "") || (url === "#") || (typeof url === 'undefined'))
{
/* form has no action. Use component url. */
url = action;
}
/* begin change */
if(form.find('.upload').length>0) {
form.ajaxForm({
url: url,
success: function(data, statusText, xhr) {
jQuery('#'+target).html(xhr.responseText);
web2py.trap_form(action, target);
web2py.ajax_init();
}
});
} else { /* end change */
form.submit(function(e) {
web2py.disableElement(form.find(web2py.formInputClickSelector));
web2py.hide_flash();
web2py.ajax_page('post', url, form.serialize(), target, form);
e.preventDefault();
});
};
form.on('click', web2py.formInputClickSelector, function(e) {
e.preventDefault();
var input_name = $(this).attr('name');
if(input_name != undefined) {
$('<input type="hidden" />').attr('name', input_name)
.attr('value', $(this).val()).appendTo(form)
}
form.trigger('submit');
});
});
},
Regards,
Bart
Op dinsdag 7 augustus 2012 06:43:36 UTC+2 schreef Anthony:
>
> At the end of this section
> <http://web2py.com/books/default/chapter/29/12#Components> in the book it
> says:
>
> *Please note:* Because Ajax post does not support multipart forms, i.e.
>> file uploads, upload fields will not work with the LOAD component. You
>> could be fooled into thinking it would work because upload fields will
>> function normally if POST is done from the individual component's .load
>> view. Instead, uploads are done with ajax-compatible 3rd-party widgets and
>> web2py manual upload store commands.
>
>
> In the web2py cookbook
> <http://www.packtpub.com/web2py-application-development-recipes-to-master-python-web-framework-cookbook/book>,
>
> there is a recipe for this. The app associated with that recipe can be
> downloaded here:
> https://github.com/mdipierro/web2py-recipes-source/blob/master/apps/04_advanced_forms/web2py.app.upload.w2p.
>
> It uses the jquery.form.js plugin:
> http://jquery.malsup.com/form/#file-upload. The app includes a customized
> web2py_ajax.js (which is named web2py.js in more recent versions of web2py)
> with a custom version of web2py_trap_form():
>
> function web2py_trap_form(action,target) {
> jQuery('#'+target+' form').each(function(i){
> var form=jQuery(this);
> if(!form.hasClass('no_trap'))
> if(form.find('.upload').length>0) {
> form.ajaxForm({
> url: action,
> success: function(data, statusText, xhr) {
> jQuery('#'+target).html(xhr.responseText);
> web2py_trap_form(action,target);
> web2py_ajax_init();
> }
> });
> } else {
> form.submit(function(e){
> jQuery('.flash').hide().html('');
> web2py_ajax_page('post',action,form.serialize(),target);
> e.preventDefault();
> });
> }
> });
> }
>
> Anthony
>
> On Monday, August 6, 2012 11:49:27 PM UTC-4, Picheth wrote:
>>
>> I have a problem with the upload file using the LOAD (....., ajax = True)
>>
>>
>> please .. any help, cues or snippets of codes to accomplish this ... will
>> be greatly appreciated
>>
>> Picheth.
>>
>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.