[dancer-users] Help with a POST

John Stoffel john at stoffel.org
Fri Aug 7 21:15:46 BST 2015


Andrew,

I think you really need to back up and start from scratch
again. Unfortunately I've got family around and can't spend the time
to help directly, but what I would do is:


1. start a new dancer project.

2. build a new template for the index page with a <form ....>
... </form> in it with just a single text entry and a submit button.
Simple stuff.  Make sure the text post has a name of 'query'.

3. You need two routes in your lib/Module.pm file:

    package Module;
    use Dancer ':syntax';
    use Dancer::Plugin::DBIC;

    our $VERSION = '0.1';

    get '/' => sub {
	template 'index', {
			   title => "The Index",
			  };
    };

    get '/search' => sub {
      my $query = params->{query} || "";
      my $regexp = $query;
      $regexp =~ s/\?|\*/\.\*/g;
      my $tobold = $query;
      $tobold =~ s/\?|\*//g;

      my @results = ();
      my $limit = 50;
      if (length $query) {
	@results = _perform_search($regexp,$limit);
      }
    }


And of course a subroutine called _perform_search() to do the actual
work.


Once you have that working, try using the POST method, and adding in
the:

	post '/search2' => sub {
	
	}

routines.  Then you *should* be able ot handle it.  

I'd also look more closely at the Dancer Advent calendar stuff as
well.  The advantage of GET calls is that you can more easily wrap
them into a div and return results, etc.  

But honestly I'm an old dog also learning new tricks... :-)

John


More information about the dancer-users mailing list