In the view something like that : $( document ).ready(function() { $('input#id').bsmselect(...); });
It can be pass to the view from the controller, as you want... So you will need to do something like that : {{=XML(your_pass_js_script)}} :) Richard On Fri, Dec 13, 2013 at 6:38 PM, Jesse Ferguson <ifl...@gmail.com> wrote: > sorry to hop in and ask a silly question but, when you say init the js on > the field how is that supposed to be done in web2py? Is it done in the > view? would it be ideal to put the js in the template and then pass params? > > any named optional attribute is passed to the <form> tag >> >> for example _class, _id, _style, _action, _method, etc. >> >> > sorry if this doesn't make much sense I'm sure I am just missing the java > knowledge I'm pretty new to programming and am learning through trial and > error... > > > > On Friday, December 13, 2013 7:54:48 AM UTC-8, Richard wrote: > >> You init the js on the field!! >> >> Richard >> >> >> On Fri, Dec 13, 2013 at 10:20 AM, Kevin Bethke <kevin....@gmail.com>wrote: >> >>> Well actually I got one more question: How do you change the standard >>> form from web2py, to use the bsmselect form? >>> >>> >>> On Fri, Dec 13, 2013 at 4:18 PM, Kevin Bethke <kevin....@gmail.com>wrote: >>> >>>> Thanks it explains a lot. I will try to work on it as soon as I got the >>>> time. Unfortunatly we got a deadline at work which is Christmas. So I will >>>> probably not work on it till than. >>>> >>>> >>>> On Fri, Dec 13, 2013 at 3:53 PM, Richard Vézina >>>> <ml.richa...@gmail.com>wrote: >>>> >>>>> I am sorry about that... >>>>> >>>>> Web2py default behavior for list:reference or reference is a HTML >>>>> Select and option... This is ordered by the navigator base on the spelling >>>>> of the element... So when you edit your form if you want to maintain the >>>>> preexisting order (the one that were there when you select items and order >>>>> them with bsm) you need to set them in order in the select yourself... >>>>> Bsmselect use OL that is Ordered List instead of UL... But it consume a >>>>> standard select... So, as long as he get a select with the proper ordered >>>>> options he can recreate the prexisting order... That is what the js I show >>>>> you does... >>>>> >>>>> ordered_values content the list:reference or the reference value that >>>>> are a simple python list... List are items of list are ordered not like >>>>> python dict that not preserve order... So I just get the value of the >>>>> field >>>>> that is a list object and pass it to the javascript as a list object... >>>>> then I create option from that list in javascript like you could do in >>>>> web2py with helpers for instance or by generating html yourself... >>>>> >>>>> Hope it helps. >>>>> >>>>> Richard >>>>> >>>>> >>>>> On Fri, Dec 13, 2013 at 7:27 AM, Kevin Bethke <kevin....@gmail.com>wrote: >>>>> >>>>>> thanks but to be honest now I'm even more confused. >>>>>> why do you need a piece of jquery code in a javascript variable. I >>>>>> sopose you included the entire jquery library. >>>>>> Why do you do the ordering with javascript and not with python is >>>>>> there a special reason for this? I think I just explained the last >>>>>> question by looking at the code again. The document ready function is >>>>>> executed every time you add or remove an element from the list? >>>>>> the javascript variable ordered_values="%s" is filled from the >>>>>> represent python variable? >>>>>> And my last question do you implement the multiple select into a form? >>>>>> Sry for all those questions but I'm still learning and the need for >>>>>> this to work really pushes my skills and knowledge beyond its limits. >>>>>> >>>>>> >>>>>> On Thu, Dec 12, 2013 at 3:49 PM, Richard Vézina < >>>>>> ml.richa...@gmail.com> wrote: >>>>>> >>>>>>> It's a bit hacky but it works... >>>>>>> >>>>>>> :) >>>>>>> >>>>>>> Richard >>>>>>> >>>>>>> >>>>>>> On Thu, Dec 12, 2013 at 9:48 AM, Richard Vézina < >>>>>>> ml.richa...@gmail.com> wrote: >>>>>>> >>>>>>>> Don't bother with the php thing... >>>>>>>> >>>>>>>> Just look the data structure of the select... >>>>>>>> >>>>>>>> Here what I do to restore proper order on update form : >>>>>>>> >>>>>>>> controller_view_js += """ >>>>>>>> var ordered_values = ''%s''; >>>>>>>> $(document).ready(function() { >>>>>>>> if(ordered_values != "None") { >>>>>>>> $.each(ordered_values, function(i, val) { >>>>>>>> $("select[name=field_name]").append("<option >>>>>>>> value=\'"+ordered_values[i]+"\'>"+ >>>>>>>> $("select[name=field_name] >>>>>>>> option[value="+ordered_values[i]+"]").text()+"</option>"); >>>>>>>> }); >>>>>>>> $("select[name=field_name] option:selected").remove(); >>>>>>>> $.each(ordered_values, function(i, val) { >>>>>>>> $("select[name=field_name] >>>>>>>> option[value="+ordered_values[i]+"]").attr("selected", >>>>>>>> "selected"); >>>>>>>> }); >>>>>>>> }; >>>>>>>> });""" % [int(ID) for ID in ordered_values_query] >>>>>>>> >>>>>>>> controller_view_js is a variable containing a piece of jquery that >>>>>>>> I pass to the view from the controller... What it does put the options >>>>>>>> into >>>>>>>> the proper order or how they were ordered at the input... All this is >>>>>>>> because web2py don't use "ol" list out of the box... So I manage thing >>>>>>>> to >>>>>>>> not require ol. >>>>>>>> >>>>>>>> The ordered_values_query contain the value of the field field_name >>>>>>>> for the given record... >>>>>>>> >>>>>>>> I had to set a representation like this too : >>>>>>>> >>>>>>>> represent=lambda values, row: ', '.join(map(lambda id: >>>>>>>> db.ref_referenced_table(id).represent_field, values)) if values != >>>>>>>> [] or None else T('N/A') >>>>>>>> >>>>>>>> Hope it helps. >>>>>>>> >>>>>>>> Richard >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Dec 12, 2013 at 4:07 AM, BlueShadow <kevin....@gmail.com>wrote: >>>>>>>> >>>>>>>>> thanks for your offer I'm working my way through the example code >>>>>>>>> but my biggest problem is that php site. I don't know php. But from >>>>>>>>> what I >>>>>>>>> get from the php code is that all the sample cities need to be in an >>>>>>>>> unordered list environment <ul><li></li>...</ul> >>>>>>>>> but this form part of the bsmselect example really confuses me. >>>>>>>>> >>>>>>>>> <h1>Example 1: Typical Usage</h1> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> <form action="./example_results.php" method="post"> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> <label for="cities1">What are your favorite cities?</label> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> <select id="cities1" multiple="multiple" name="cities[]" >>>>>>>>> title="Click to Select a City" class="sminit"> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> <option>Amsterdam</option> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> </select> >>>>>>>>> <p><input type="submit" name="submit" value="submit" /></p> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> </form> >>>>>>>>> >>>>>>>>> >>>>>>>>> especially the php file in form action="" >>>>>>>>> <?php >>>>>>>>> >>>>>>>>> if(!empty($_POST['submit'])) { >>>>>>>>> >>>>>>>>> echo "<html>\n<body style='width: 400px; margin: 2em auto; >>>>>>>>> font-family: Arial;'>"; >>>>>>>>> >>>>>>>>> if(!empty($_POST['cities'])) { >>>>>>>>> >>>>>>>>> echo "\n<p><strong>You selected the following >>>>>>>>> cities:</strong></p>\n<ul>"; >>>>>>>>> >>>>>>>>> foreach($_POST['cities'] as $city) { >>>>>>>>> >>>>>>>>> // exclude any items with chars we don't want, just in case >>>>>>>>> someone is playing >>>>>>>>> if(!preg_match('/^[-A-Z0-9\., ]+$/iD', $city)) continue; >>>>>>>>> >>>>>>>>> // print the city >>>>>>>>> echo "\n\t<li>" . htmlspecialchars($city) . "</li>"; >>>>>>>>> } >>>>>>>>> >>>>>>>>> echo "\n</ul>"; >>>>>>>>> >>>>>>>>> } else { >>>>>>>>> echo "\n<p>No items selected</p>"; >>>>>>>>> } >>>>>>>>> >>>>>>>>> echo "\n<p><a href='index.html'>Try Again?</a></p>"; >>>>>>>>> >>>>>>>>> echo "\n</body>\n</html>"; >>>>>>>>> >>>>>>>>> } else { >>>>>>>>> // if someone arrived here not having started at example.html >>>>>>>>> // then show example.html instead >>>>>>>>> require("index.html"); >>>>>>>>> >>>>>>>>> } >>>>>>>>> >>>>>>>>> >>>>>>>>> It seems to me that there is an entire html document in this php >>>>>>>>> file. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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+un...@googlegroups.com. >>>>>>>>> >>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> -- >>>>>>> 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 a topic in >>>>>>> the Google Groups "web2py-users" group. >>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>>>>> topic/web2py/3HTTdoGnCAA/unsubscribe. >>>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>>> web2py+un...@googlegroups.com. >>>>>>> >>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>> >>>>>> >>>>>> -- >>>>>> 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+un...@googlegroups.com. >>>>>> >>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>> >>>>> >>>>> -- >>>>> 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 a topic in the >>>>> Google Groups "web2py-users" group. >>>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>>> topic/web2py/3HTTdoGnCAA/unsubscribe. >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> web2py+un...@googlegroups.com. >>>>> >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>> >>>> >>> -- >>> 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+un...@googlegroups.com. >>> >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> -- > 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/groups/opt_out. > -- 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/groups/opt_out.