http://qs1969.pair.com?node_id=1142925

QuillMeantTen has asked for the wisdom of the Perl Monks concerning the following question:

Greetings, fellow monks
To help the interns at my town hospital set up their shift calendars I wrote an openoffice base macro (in OObasic, bleh) after some time I rewrote it in java to make it portable, then when I thought about the hassle of having untrained user open a terminal and type "java -jar mything --xls input.xls" I decided to set it up as a web application.

There started a painful trip, unknowing of frameworks like sails I wrote it in nodejs (even though I hate javascript with a passion) and cobbled together a rag tag session system to prevent users from having to register themselves.
After falling in love with perl I decided to get rid of that crap and rewrite it in perl using Catalyst.

After some fiddling around I managed to setup a session system using cookies so the server can keep track of data added by users during their sessions, problem is I am now coding the ability to delete any data they have entered and I hit quite a roadblock : how do I do that?
Data is submitted to the server in the url using a GET request and the following scheme :

http://127.0.0.1:3000/serviceform?nom_service=service&nb_jours_repos=1

This is a get request to record data, now to delete it I whipped up some javascript code to make users able to point and click at whatever data they want to delete (data is displayed that way in the template : )

[% FOREACH key IN services.keys -%] <li onclick="select(this)">service : [%key%] jours de re +pos: [%services.$key.nb_jours%] interieur : [%services.$key.interieur%]</li> [% END -%]

Because I save everything in a hash of hashs inside my session.

here is the form used to enter data that is sent to the server and displayed on the webpage :

<form> <label for="ns">nom du service </label> <input type="text" name="nom_service" id="ns" value="s +ervice"/> <label for="nbjdr">nombre de jours de repos</label> <input type="number" id="nbjdr" name="nb_jours_repos" +value=1 /> <label for="int">service d'intérieur?</label> <input type="checkbox" id="int" name="interieur" /> <input type="submit" value="ajouter"/> <input type="button" class="remove" onclick="remove()" + value="supprimer"/> </form>

The remove function called is a javascript one to delete the li nodes with the selected class. I can set any of those list item class to selected but what should happen when I press the delete button, I need to delete those entries on the server as well, not just in the client browser. I think some kind of request should be in order but I haven't the foggiest about how it should be handled, maybe a special case of submit with a hidden delete boolean set to true..? If anyone cares to give me a hint about the best way to do it it would be most welcome.