1

I'm currently building a preferences update form (not the main default Marketing Cloud preferences centre, but a specific form for a small audience segment)

I'm pre-populating the form from a personalised link in an email. I've been able to pre-populate the text fields with their existing preferences like so:

<input type="text" id="Firstname" name="Firstname" value="%%=v(@Firstname)=%%" required="" required>

But I am struggling a little with the checkboxes (boolean).

In raw HTML, adding 'checked' as below pre-ticks the checkbox. I've stored this value based on an if statement in a variable

If IndexOf(@StudyRegion,@Region1) > 0 Then
    Set @RegionNE = "checked"
Else
    Set @RegionNE = ""
EndIf

So if they checked that box first time round, the IndexOf section of the query finds it in the string (created as a result of multiple checkboxes) which looks like 'Northern Ireland,Wales,Greater London,East Midlands' etc. If it finds the appropriate region it sets the RegionNE variable to 'checked'. I have tried putting this variable in the checkbox lines like this:

<input type="checkbox" name="Study region" id="North East" value="North East" %%=v(@RegionNE)=%% />

But it's clearly wrong as it causes the page to get a 500 error. What would be the right way of making this checkbox be checked if the variable was found to be 'checked'?

1
  • 1
    Are the variables StudyRegion and Region1 defined in your code. If either of these variables are null, I would guess it would result in a 500 error. Mar 7, 2017 at 21:08

1 Answer 1

7

@TCassa, your approach appears correct. I've taken this approach many time before. I suspect it is just something minor in your code like a syntax issue or undefined variable.

Suggestion:
I've started using a new approach in this scenario by using the IIF() function. This approach allows me to place the AMPScript code inline with my HTML.

<input type="checkbox" name="Study region" id="North East" value="North East" %%=IIF(@StudyRegion=="North East"," checked ","")=%%/>
2

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .