Hey, I’m using hash and sorting it from the template toolkit. I would advise to try it then later you can play with the speed.
Best regards, Attila > On 26 Aug 2015, at 19:39, Richard Reina <[email protected]> wrote: > > Andrew and Attilla, > > Thank you for the replies. I am guessing that keeping the sorting in the SQL > instead of the HTML would mean the page would load faster so I trying to go > that route. > > However, when I switch my code above to: > > <% FOREACH job in Jobs %> > <option value="<% job.ID %>"><% Job.NAME %></option> > <% END %> > > I get an empty dropdown. I am using $sth->fetchall_arrayref(); with no > arguments. Sorry to ask, but been playing with it for over an hour and still > have it figured it out. > > > 2015-08-26 9:04 GMT-05:00 Andrew Beverley <[email protected] > <mailto:[email protected]>>: > On Wed, 2015-08-26 at 08:51 -0500, Richard Reina wrote: > > I have this table data that I load into a template as follows. > > > > $q = "SELECT ID, NAME > > FROM jobs > > ORDER BY NAME"; > > $sth = $dbh->prepare($q); > > $sth->execute(); > > my $Jobs_ref = $sth->fetchall_hashref('ID'); > > use fetchall_arrayref() instead. > > > To display it in the template as a drop-down select I do: > > > > <select class="selectpicker" name="jobselect" id="jobselect" > > style="width: 500px;"> > > <% FOREACH ID IN Jobs.keys %> > > Here you just need something like > > FOREACH job in Jobs > > > <option value="<% Jobs.$ID.ID <http://id.id/> %>"><% Jobs.$ID.NAME > > <http://id.name/> %></option> > > And then here use job.ID, job.NAME etc. > > > And it works great. Except for one thing, the list is not in order by name. > > I have read more than a few posts about how once you save a query as a > > hashref that the order is lost. > > Yes, in Perl arrays are ordered, hashes are not. If you want to retain order, > you > must use an array (or sort the hash before use, which is expensive). > > > Most of those posts suggested fetching as a > > arrayref instead. However, I have no idea how to do that and then display > > it in a select like the above code does. > > See above. > > > _______________________________________________ > dancer-users mailing list > [email protected] <mailto:[email protected]> > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users > <http://lists.preshweb.co.uk/mailman/listinfo/dancer-users> > > _______________________________________________ > dancer-users mailing list > [email protected] > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list [email protected] http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
