I have a form that I'm looking to send to a calendar scheduling tool after the form is submitted. I want to pass the information they submitted in the form through the URL but cannot figure out how to get these variables into the query string for the thank you page url.
Thank you page URL: www.example.com/meeting
Desired thank you page + query string: www.example/meeting?name=first%20last&email=john@email.com
Solved! Go to Solution.
MktoForms2.whenReady(function(form){
form.onSuccess(function(submittedValues,serverThankYouURL){
var appendValues = {
name : submittedValues.FirstName + " " + submittedValues.LastName,
email : submittedValues.Email
};
/* -- NO NEED TO TOUCH BELOW THIS LINE -- */
var thankYouLoc = document.createElement("a");
thankYouLoc.href = serverThankYouURL;
thankYouLoc.search += Object.keys(appendValues).reduce(function(acc,key){
acc += "&" + encodeURIComponent(key) + "=" + encodeURIComponent(appendValues[key]);
return acc;
}, "");
document.location = thankYouLoc;
return false;
});
});
No need to tag me though, if it's a new post I'll see it.
@SanfordWhiteman I feel like you're the one who can help me answer this.
MktoForms2.whenReady(function(form){
form.onSuccess(function(submittedValues,serverThankYouURL){
var appendValues = {
name : submittedValues.FirstName + " " + submittedValues.LastName,
email : submittedValues.Email
};
/* -- NO NEED TO TOUCH BELOW THIS LINE -- */
var thankYouLoc = document.createElement("a");
thankYouLoc.href = serverThankYouURL;
thankYouLoc.search += Object.keys(appendValues).reduce(function(acc,key){
acc += "&" + encodeURIComponent(key) + "=" + encodeURIComponent(appendValues[key]);
return acc;
}, "");
document.location = thankYouLoc;
return false;
});
});
No need to tag me though, if it's a new post I'll see it.
Thank you @SanfordWhiteman .
Now if I want to throw in a variable from a hidden field in the form between the thank you page url and before the appended values?
www.example/meeting/hiddenfield?name=first%20last&email=john@email.com
You can add any fields you want to the appendValues object, using the same syntax I did for Email.
The order of unique fields in a query string is extremely unlikely to matter. Yechnically the parameters are ordered (as the query string is split into an ordered list) but it would be extremely fragile if your server actually cared about the order.
@Stephanie_Berr2 could you return to the thread and mark my answer as the solution? Thanks.
@SanfordWhiteman, is there a method for carrying these appended values over in the URL if the user clicks onto another page? That does not generate null values if the values are empty?
is there a method for carrying these appended values over in the URL if the user clicks onto another page? That does not generate null values if the values are empty?
For that you’d need a fuller-featured attribution tracking JS library. There are several out there; I’ll be publishing a fresh one to the Products blog in the next couple of months (microTracker).
do they have to stay in the URL? More commonly, you'd take them from the URL and put them into cookies.
Then when a form is loaded, it can take values from the cookies that have been persisted.
You can go down the full/partial attribution path @SanfordWhiteman is talking about or there are plenty of examples online of how to cookie things like UTM codes, GCLID, FBCLID etc (e.g. https://jennamolby.com/how-to-use-cookies-to-capture-url-parameters/), and from there it is easy to have Marketo Forms pick those values up, simply by telling it to read from a cookie for a field value.
Cheers
Jo
here are plenty of examples online of how to cookie things like UTM codes, GCLID, FBCLID etc (e.g.https://jennamolby.com/how-to-use-cookies-to-capture-url-parameters/),
That code is absolutely awful + broken though. Hope you’re not using it. 🙂