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.bet...@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+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.

Reply via email to