1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
use Mojolicious::Lite; use DBI qw(:sql_types); # ... get '/eingabe' => sub { my $self = shift; $self->render( 'eingabe' ); }; get '/insert_database' => sub { my $self = shift; my $vorname = $self->param('vorname'); my $nachname = $self->param('nachname'); my $steuernummer = $self->param('steuernummer'); my $ort = $self->param('ort'); my $sth = $dbh->prepare( "INSERT INTO $table ( vorname, nachname, steuernummer, ort ) VALUES ( ?, ?, ?, ? )" ); $sth->execute( $vorname, $nachname, $steuernummer, $ort ); $self->render( 'insert_database' ); }; app->start; __DATA__ @@ eingabe.html.ep % title 'eingabe'; % layout 'green'; <br /><br /> <form action="insert_database"> <table> <tr><td>Vorname:</td><td><input type="text" name="vorname" /></td></tr> <tr><td>Nachname:</td><td><input type="text" name="nachname" /></td></tr> <tr><td>Steuernummer:</td><td><input type="text" name="steuernummer" /></td></tr> <tr><td>Ort:</td><td><input type="text" name="ort" /></td></tr> </table> <br /><input type="submit" value="OK"/> </form> @@ insert_database.html.ep % title 'insert_database'; % layout 'green'; <br /><br /> <a href='index'>weiter</a> <!-- ... -->
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
get '/eingabe' => sub { my $self = shift; my $vorname = $self->param('vorname'); my $nachname = $self->param('nachname'); my $steuernummer = $self->param('steuernummer'); my $ort = $self->param('ort'); my $sth = $dbh->prepare( "INSERT INTO $table ( vorname, nachname, steuernummer, ort ) VALUES ( ?, ?, ?, ? )" ); $sth->execute( $vorname, $nachname, $steuernummer, $ort ); $self->render( 'eingabe' ); }; app->start; __DATA__ @@ eingabe.html.ep % layout 'green'; <head> <script type="text/javascript"> function showUser(vorname,nachname,steuernummer,ort) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.write("Eintrag zur Datenbank hinzugefügt"); } } xmlhttp.open("GET","/eingabe?vn="+vorname+"&nn"+nachname+"&sn"+steuernummer+"&ort"+ort,true); xmlhttp.send(); } </script> </head> <body> <br /><br /> <form onsubmit="showUser(this.vorname,this.nachname,this.steuernummer,this.ort)"> <table> <tr><td>Vorname:</td><td><input type="text" name="vorname" /></td></tr> <tr><td>Nachname:</td><td><input type="text" name="nachname" /></td></tr> <tr><td>Steuernummer:</td><td><input type="text" name="steuernummer" /></td></tr> <tr><td>Ort:</td><td><input type="text" name="ort" /></td></tr> </table> <br /><input type="submit" value="OK"/> </form> <a href='index'>weiter</a> </body>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
use Mojolicious::Lite; get '/' => sub { my $self = shift; $self->render('index'); }; get '/person/:id' => sub { my $self = shift; # person aus db holen # und an template uebergeben }; post '/person' => sub { my $self = shift; print STDERR "Lege neue Person an: " . $self->param("vorname") . "\n"; }; app->start; __DATA__ @@ index.html.ep %title 'index'; %layout 'master'; <form id="myform" action="/person" method="post"> Name: <input type="text" name="vorname" /> <input type="submit" value="Abschicken" /> </form> @@ layouts/master.html.ep <html> <head> <title><%= title %></title> </head> <body> <%= content %> </body> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="https://raw.github.com/malsup/form/master/jquery.form.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#myform').ajaxForm(function() { alert('Person wurde angelegt.'); }); }); </script> </html>
2011-08-14T09:00:41 KuerbisKann das so funktionieren?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
use Mojolicious::Lite; use DBI qw(:sql_types); # ... get '/eingabe' => sub { my $self = shift; $self->render( 'eingabe' ); }; get '/insert_database' => sub { my $self = shift; my $vorname = $self->param('vorname'); my $nachname = $self->param('nachname'); my $steuernummer = $self->param('steuernummer'); my $ort = $self->param('ort'); my $sth = $dbh->prepare( "INSERT INTO $table ( vorname, nachname, steuernummer, ort ) VALUES ( ?, ?, ?, ? )" ); $sth->execute( $vorname, $nachname, $steuernummer, $ort ); $self->redirect_to( 'index' ); }; app->start; __DATA__ @@ eingabe.html.ep % title 'eingabe'; % layout 'green'; <br /><br /> <form action="insert_database"> <table> <tr><td>Vorname:</td><td><input type="text" name="vorname" /></td></tr> <tr><td>Nachname:</td><td><input type="text" name="nachname" /></td></tr> <tr><td>Steuernummer:</td><td><input type="text" name="steuernummer" /></td></tr> <tr><td>Ort:</td><td><input type="text" name="ort" /></td></tr> </table> <br /><input type="submit" value="OK"/> </form> <!-- ... --
2011-08-15T08:51:22 pqvielleicht hättest du einfach mal genauer erklären können, was du mit "verhindern, dass ich [...] eine eigene Seite öffnen muss?" meintest.
2011-08-15T10:56:48 KuerbisIch glaube, je besser man sich mit der Materie auskennt, desto leichter tut man sich beim Erklären worum es geht.