<div dir="ltr"><div><div><div><div>Hi Richard,<br><br></div>There are two ways that I get info into a page in Dancer/2.<br></div>The first is to use an Ajax call, something like this:<br>$("#llinktoclick").click(function(event) {<br>    var DoggyName = $('#DoggyName').val();<br>    <br>   event.preventDefault(); // Important to ensure the link doesn't get submitted.<br><br>    $.ajax({<br>     method: "POST",<br>     url: "/getDoggyDetails",<br>     data:  { Doggy: DoggyName } // Optional, will be sent through as POST data ( ie. params->{'Doggy'} ),<br></div><div>     // you can also use the route, by doing  url: "/getDoggyDetails" + '/' + DoggyName , instead<br></div><div>   })<br>   <br>  .done(function( msg ) {<br>   // Do something here like clear and append a status box.<br>     $('#ResponseText').empty(); // clear <br>     $('#ResponseText').append(msg); // append the return value from your POST call <br>  });<br><br>});<br><br></div>Then in your .pm file:<br><br>post '/getDoggyDetails' => sub {<br>  my $params = request->params;<br></div><div>  my $doggyName = $params->{'Doggy'} || "Not entered"; # the || stops uninitialised value warnings in perl.<br></div><div>  return "Please enter a doggy name" if $doggyName eq "Not entered";<br></div><div>  # DO stuff here with $doggyName etc...<br></div>  return "This is the completion message to tell you it is all done";<br><div>};<br><br><br></div><div>The second way, which is probably what you are more interested in, is to pass it directly from the route. With mysql you can probably do a straight fetchallhashref and then pass the response directly to the page, then iterate through the values with template toolkit.<br></div><div>With your route in the Dancer pm file:<br><br>any [ 'get', 'post' ] => '/pagetoLoad'  =>  sub {<br><br></div><div>   my $sql = "SELECT * FROM Doggies";<br></div><div>   # mysql connection stuff etc...<br></div><div>   # Put it into a hashref<br>   # my $doggieRef   = $sth->fetchall_hashref(['ID','DoggyTagID'])); # Double attribute version, not common<br>   my $doggieRef   = $sth->fetchall_hashref('ID'); # Normal, single attribute version<br><br></div><div>   # The Ref should contain things like $doggieRef->{'1'}{'Name'} = "Rover"; because of the way we are iterating it through with Template Toolkit.  <br></div><div>   # I would also recommend Data::Dumper to see the contents of your query<br></div><div>   my $dumperDoggieText = Dumper($doggieRef);<br></div><div>    print "Doggy text from sql query is: $dumperDoggieText\n";</div><div>  # And, the other important part, sending it to the page.<br> <br>    template 'templateName.tt', {<br></div><div>      'Doggies' => $doggieRef,  # Make sure 'Doggies' here is what you will iterate through on the page </div><div>     'Testing'   => "This is text to test to make sure this will come through", # to test, use this like <% Testing %> on your template page<br>}, {};<br></div><div>};<br><br></div><div>Then using Template Toolkit, in your template file, you can do something like:<br><br><% FOREACH id IN Doggies.keys %><br><br><% Doggies.$id.Name %><br><br></div><div><% END %><br></div><div><br></div><div>And also do our little test just to make sure values are coming through.<br><br></div><div><% Testing %><br></div><div>Which should print out: "This is text to test to make sure this will come through" (without the quotes)<br><br></div><div>In the end Template Toolkit can be a bit confusing with Hashes but it does support Perl hashes very well and also nested attributes, (hashes of hashes etc...).<br><br></div><div>I don't have a complete '"working example" on hand but if there is anything confusing just let me know and if anyone else sees anything blatantly wrong, please shout out.<br></div><div><br></div><div>David<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 20, 2015 at 11:47 AM, Richard Reina <span dir="ltr"><<a href="mailto:gatorreina@gmail.com" target="_blank">gatorreina@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Have been learning Dancer2 over the last few weeks and really like it. Wondering if someone can tell me how I can load data from a MySQL database into a dancer rendered page. I am comfortable writing SQL in perl via perl->DBI just don't have any idea how to bring the data from a fetch into a webpage so that I can display it directly on the page or load it into a dropdown menu. Any help is greatly appreciated.<br><br></div>Thanks<br></div>
<br>_______________________________________________<br>
dancer-users mailing list<br>
<a href="mailto:dancer-users@dancer.pm">dancer-users@dancer.pm</a><br>
<a href="http://lists.preshweb.co.uk/mailman/listinfo/dancer-users" rel="noreferrer" target="_blank">http://lists.preshweb.co.uk/mailman/listinfo/dancer-users</a><br>
<br></blockquote></div><br></div>