On 3/4/11 11:03 AM, Gerda Shank wrote:
On 3/4/11 8:23 AM, Eric Berg wrote:
I'm trying to do some progressive engagement by allowing one of my forms to be filled out before a user is required to log in, but once the form is filled, I need them to log in so that I can get the user ID, which is part of the record for that form's row in my db.
So after the form is submitted, you want to save the form contents somehow, then present a login form, then after the user logs in, save it to the database?
Yes. What I did previously was just to save a hash of the values, but I'm not sure how to pass that to formhandler given that my db constraints currently require the values for this form to have a creator_id, which is just what I need from the login. So, I'm thinking at this point that I need to find a way to pass a hash of form values back to formhandler..that's got to be possible, and must be done after I get the form submission or I'll have to loosen up the constraints on my db to allow me to insert rows without a creator ID. I'm looking into that now.

Is the part you're not sure of how/where to save the form contents? There are the usual options for preserving data across several requests, i.e. stash, database, etc.
I've been stashing a hash of form params. I have to test this out, but I have to figure out if I can validate the form without the creator_id's being present. I added it to the form, because formhandler was barfing when I used the simple form of stashing the new_result({}), then returning $self->form($c) in my add(). I have to figure out how to validate the form wtihout having it submitted to teh db, because that causes an error when the creator_id is missing, or add the creator_id (hidden and empty) to the form and only validate after login. I guess I just have to try a few things. If any of you good folks have banged your head against this and have ideas, they'd certainly be welcome.

Then you'd have to decide how you want to save the data. You *could* use FormHandler to do that, but if you have an already validated set of data, it might be simpler to just save it to the database yourself.
May be. Probably, since I'm trying to wrest control from formhandler so I can validate a form without the creator_id, then redirect to login, then take the values of the form and the logged-in user's id and commit that to the db. One change that is causing me problems is that I moved from the approach of having the form be a simple attribute (has 'form') where I was doing all the processing in the show and add methods to the approach where I implemented $self->form() per the sample referenced in HTML::FormHandler::Manual::Catalyst.

Thinking through this in writing this, I believe that what I have to do is reimplement the form as a simple attribute and then handle the process() as needed in the add() method. I think that's where I shot myself in the foot.

Thank you muchly. I'll post my successful results for the benefit of those who follow.

Eric

I'm not quite sure if I addressed the particular issues you were having; if not, please clarify :)

Gerda


_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/


_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to