Shawn Romine Posts:73
|
03-31-2010 07:13 AM |
|
Can you use the client side event within a question to redirect to the $(editurl) variable that can be used within dynamic emails? If so, can someone help me with the javascript code?
The scenario is that I have a form that users fill out some initial information, and when they click on Send Registration, it emails them the $(editurl) information, and then shows the rest of the form. http://www.tfff.org/filp
The problem is that when they enter data after clicking the Send Registration Info button, when they click on Save Responses (which executes javascript), the data is not saved if they return back using the initial $(editurl) button.
So, my thinking is that after they click on Send Registration, if I can redirect the page to the $(editurl) information, then it might work |
|
|
|
|
David To
river guide Posts:2719
|
03-31-2010 07:52 AM |
|
HI, this is kind of confusing for me to follow exactly what you are trying to do. Yes, you should be able to use the token $(editurl) in client side javascript event. On your "Send Registration", which isn't the submit button, you could use the same javascript as the submit button, but have the email completion event be sent out with the $(editurl) link. I think this should work. -- David |
|
|
|
|
Shawn Romine Posts:73
|
03-31-2010 08:09 AM |
|
Thanks for the quick response. By the way, are you an employee of DataSprings? The reason why I ask is that I might need to purchase some technical support, but I would need some assistance today as I am trying to go live tomorrow.....is this possible? Issue: When a user fills out the information on the following form, clicks sends me registration (email is sent - rest of form is unhidden), types in data and then clicks Save Responses, and then returns to form from email, the data is not saved. To test, fill out the following form with a valid email address. Type some data in a couple of the fields that unhide, and then click Save Responses. Exit out of the form and then use the link that was sent to you an the email. You will see the data you entered is not saved. Now if you type in data though (after accessing form from link), and click Save Responses - the data will save. The way the Send Me Registration Info works is it executes a WebForm_DoPostBack and then a Form Submission event is set to fire off and email the user when the Sent RegistrationInfo variable is no - meaning the form was not sent. So, my idea for possible solution are: Enter in javascript code on the client side event of the Send Me Registration Info html button that will redirect the page to the $(editurl) variable - if you think this will work, can you help me with the code? I am willing to pay for your time if you could help me on this! |
|
|
|
|
Shawn Romine Posts:73
|
|
Shawn Romine Posts:73
|
03-31-2010 09:10 AM |
|
If the above is not possible, really the bigger question is I have a long form for people to fill out, what strategies can I use to make sure people dont lose their data, and that they can come back and edit. |
|
|
|
|
David To
river guide Posts:2719
|
03-31-2010 09:29 AM |
|
Quick question. Does a person have to be a registered user on your site or can they be anonymous (guest), have no username/password but can still fill out this form? -- David |
|
|
|
|
Shawn Romine Posts:73
|
03-31-2010 09:32 AM |
|
Well...we are hoping to not have user accounts. The issue is that some of the people who fill out the form get confused signing up for user accounts, verification, etc. So, we would like to have them fill out this form as anonymous - but, we would like the ability to have them return to the form since it is long depending on how much information they put in..... User Registration is an option though if need be.... |
|
|
|
|
David To
river guide Posts:2719
|
03-31-2010 12:17 PM |
|
HI Shawn, can you try this and see if it fixes your issue? Go to host / sql and execute the following: CREATE PROCEDURE [dbo].[DynamicForms_UpdateDynamicResponse] @DynamicQuestionResponseID uniqueidentifier, @QuestionID as uniqueidentifier, @Response as nvarchar(4000), @UserID as integer, @UniqueResponseID as uniqueidentifier AS Declare @MyCount int Set @MyCount = (Select count(*) from DynamicForms_QuestionResponse Where UniqueResponseID = @UniqueResponseID AND DynamicQuestionID = @QuestionID) IF @MyCount = 0 BEGIN Insert Into dbo.[DynamicForms_QuestionResponse](DynamicQuestionID, Response, UserID, SortOrder, InActive, ResponseDateTime, UniqueResponseID) Values(@QuestionID, @Response, @UserID, 0, 0, GetDate(), @UniqueResponseID) END ELSE BEGIN Update dbo.[DynamicForms_QuestionResponse] SET Response = @Response, UserID = @UserID Where UniqueResponseID = @UniqueResponseID AND DynamicQuestionID = @QuestionID END Then go to Host / Host Settings and "Restart Application". Then fill out your form as usual and see if succeeding fields are being saved when when clicking on the email edit link. Get back to us if this is successful or not. -- David |
|
|
|
|
Shawn Romine Posts:73
|
03-31-2010 12:49 PM |
|
I receive an SQL error |
|
|
|
|
Shawn Romine Posts:73
|
03-31-2010 12:50 PM |
|
When I dont click on Run As Script, just execute...I get a "there is an error in your query"..... If I choose Run as Script.....I get the following errors... System.Data.SqlClient.SqlException: There is already an object named 'DynamicForms_UpdateDynamicResponse' in the database. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL) at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions) CREATE PROCEDURE [dbo].[DynamicForms_UpdateDynamicResponse] @DynamicQuestionResponseID uniqueidentifier, @QuestionID as uniqueidentifier, @Response as nvarchar(4000), @UserID as integer, @UniqueResponseID as uniqueidentifier AS Declare @MyCount int Set @MyCount = (Select count(*) from DynamicForms_QuestionResponse Where UniqueResponseID = @UniqueResponseID AND DynamicQuestionID = @QuestionID) IF @MyCount = 0 BEGIN Insert Into dbo.[DynamicForms_QuestionResponse](DynamicQuestionID, Response, UserID, SortOrder, InActive, ResponseDateTime, UniqueResponseID) Values(@QuestionID, @Response, @UserID, 0, 0, GetDate(), @UniqueResponseID) END ELSE BEGIN Update dbo.[DynamicForms_QuestionResponse] SET Response = @Response, UserID = @UserID Where UniqueResponseID = @UniqueResponseID AND DynamicQuestionID = @QuestionID END |
|
|
|
|
David To
river guide Posts:2719
|
03-31-2010 01:37 PM |
|
Okay, do an alter instead and then go to host/host settings and restart application. ALTER PROCEDURE [dbo].[DynamicForms_UpdateDynamicResponse] @DynamicQuestionResponseID uniqueidentifier, @QuestionID as uniqueidentifier, @Response as nvarchar(4000), @UserID as integer, @UniqueResponseID as uniqueidentifier AS Declare @MyCount int Set @MyCount = (Select count(*) from DynamicForms_QuestionResponse Where UniqueResponseID = @UniqueResponseID AND DynamicQuestionID = @QuestionID) IF @MyCount = 0 BEGIN Insert Into dbo.[DynamicForms_QuestionResponse](DynamicQuestionID, Response, UserID, SortOrder, InActive, ResponseDateTime, UniqueResponseID) Values(@QuestionID, @Response, @UserID, 0, 0, GetDate(), @UniqueResponseID) END ELSE BEGIN Update dbo.[DynamicForms_QuestionResponse] SET Response = @Response, UserID = @UserID Where UniqueResponseID = @UniqueResponseID AND DynamicQuestionID = @QuestionID END -- David |
|
|
|
|
Shawn Romine Posts:73
|
03-31-2010 01:46 PM |
|
The code did work, but doesnt seem to be a change. The new url to test is the following: http://www.tfff.org/Institute/FILPF...fault.aspx So, you fill out information, you click Send Registration and an email is sent. The rest of the form is then unhid. You start typing in data and then click Save Data. You close out of the form and then access the form from the email just sent, and none of the data you have typed is shown. BUT, now since you have accessed by email you can type data and click Save Responses, and the data will save. It looks like I was given a slight reprieve, the application now needs to go live April 6th at 9:00am. The end goal is to make it as easy as possible for people to fill out. Sure, we could use accounts, or we might be able to make people go to their email first, but we are trying to see if we dont have to do this. I am open to any ideas, and more than willing to give you temporary host access if you would like to take a look. Also willing to purchase support if need be. Thanks for all of your help on this! |
|
|
|
|
Shawn Romine Posts:73
|
03-31-2010 01:58 PM |
|
I still think a possible solution might be to execute some javascript code as a client side event on the html button Send Me Rgistration so that it then takes them to the $(editurl) web address.....any possibilities of doing this? Or any angles similiar to the demo you have whereby when they click Send Me Registration info, they then see a Continue link...when they click on this continue link it then takes them to the rest of the form? Do you think this would make any difference? |
|
|
|
|
David To Host
going with the flow Posts:54
|
04-01-2010 08:23 AM |
|
HI Shawn, let me discuss this with Chad and see if it's possible to include the $(editurl) token within the client side javascript on the "Send ME Registration" HTML button and get back with you on this. -- David |
|
|
|
|