I did not get your point then. Let me look into this more. I am travelling this week end but I will look at this asap.
Massimo On Aug 29, 9:42 am, "mr.freeze" <nat...@freezable.com> wrote: > My point is that the web2py_ajax.html ajax function behaves > differently than a normal submit, which is confusing. > > On Aug 29, 3:23 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > I disagree: > > > if(jQuery(this).is(':checked') > > > On Aug 28, 6:37 pm, "mr.freeze" <nat...@freezable.com> wrote: > > > > Seems like a lot of work to get the status of a checkbox but I guess > > > changing the web2py_ajax.html ajax function to use jQuery.serialize > > > wouldn't be truly backwards compatible since people have already > > > implemented workarounds such as this. Oh well. I think the best > > > option is to avoid the web2py_ajax.html ajax function use jQuery.ajax > > > instead as it can serialize form elements properly. > > > > On Aug 28, 10:15 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > I would do something like this instead: > > > > > 1) make sure all checkboxes have an ID > > > > > 2) insert this in view > > > > <script> > > > > jQuery(document).ready(function() { > > > > jQuery(':checkbox').change(function() { > > > > var status; > > > > if(jQuery(this).is(':checked') status='1'; else status='0'; > > > > ajax('{{=URL(r=request,f='yourcallback')}}/'+jQuery(this).attr > > > > ('id')+'/'+status,[],null); > > > > });}); > > > > > </script> > > > > > then in controller > > > > > def yourcallback(): > > > > checkbox_id=request.args(0) > > > > status=request.args(1) > > > > ... store the status of checkbox_id.... > > > > return None > > > > > On Aug 28, 9:41 am, "mr.freeze" <nat...@freezable.com> wrote: > > > > > > How about this: Forget ajaxForm and in the ajax function, if s is a > > > > > string, it acts as a jQuery selector, otherwise it acts normally. > > > > > That would make it more flexible: > > > > > > function ajax(u,s,t) { > > > > > query = ''; > > > > > if (typeof s == "string"){ > > > > > d = jQuery(s).serialize(); > > > > > if(d){query = d;} > > > > > }else{ > > > > > pcs = []; > > > > > for(i=0; i<s.length; i++) { > > > > > q = jQuery("#"+s[i]).serialize(); > > > > > if(q){pcs.push(q);} > > > > > } > > > > > if (pcs.length>0){query = pcs.join("&");} > > > > > } > > > > > jQuery.ajax({type: "POST", url: u, data: query, success: function > > > > > (msg) { if(t==':eval') eval(msg); else jQuery("#" + t).html > > > > > (msg); } }); > > > > > > } > > > > > > On Aug 28, 2:46 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > I suggest you don't send the entire form but just the state of the > > > > > > button you clicked. It will have much faster response. > > > > > > > Massimo > > > > > > > On Aug 28, 12:28 am, "mr.freeze" <nat...@freezable.com> wrote: > > > > > > > > I sent a patch to Massimo but for posterity, here is the fixed > > > > > > > ajax > > > > > > > function and added an ajaxForm(url,formIndex,targetResponseID) > > > > > > > function that grabs the entire form (by index i so use 0 for > > > > > > > single > > > > > > > form pages): > > > > > > > > function ajax(u,s,t) { > > > > > > > query = []; > > > > > > > for(i=0; i<s.length; i++) { > > > > > > > q = jQuery("#"+s[i]).serialize(); > > > > > > > if(q){query.push(q);} > > > > > > > } > > > > > > > jQuery.ajax({type: "POST", url: u, data: query.join("&"), > > > > > > > success: > > > > > > > function(msg) { if(t==':eval') eval(msg); else jQuery("#" + > > > > > > > t).html > > > > > > > (msg); } }); > > > > > > > > } > > > > > > > > function ajaxForm(u,i,t){ > > > > > > > frm = jQuery("form:eq(" + i + ")"); > > > > > > > query = 'undefined=' + i; > > > > > > > if (frm.length==1){query = frm.serialize();} > > > > > > > jQuery.ajax({type: "POST", url: u, data: query, success: > > > > > > > function > > > > > > > (msg) { if(t==':eval') eval(msg); else jQuery("#"+t).html > > > > > > > (msg); } }); > > > > > > > > } > > > > > > > > On Aug 27, 10:01 pm, "mr.freeze" <nat...@freezable.com> wrote: > > > > > > > > > I'll submit a patch. > > > > > > > > > On Aug 27, 9:59 pm, Jose <jjac...@gmail.com> wrote: > > > > > > > > > > On 28 ago, 01:44, "mr.freeze" <nat...@freezable.com> wrote: > > > > > > > > > > > Did you try my altered ajax function? > > > > > > > > > > Works well!. You can add it to the trunk? > > > > > > > > > > Jose- Hide quoted text - > > > > > > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---