Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo

Form Help


Go to End


2 Posts   1197 Views

Avatar
Liam

Community Member, 470 Posts

4 September 2008 at 4:36pm

Edited: 04/09/2008 4:38pm

Been a long day, and I'm sure I'm missing the obvious here but I need some help.

Contact form fields:

$fields = new FieldSet(
new TextField('Name', 'Your Name:'),
new EmailField('Email', 'Your Email:'),
new DropdownField('To', 'To:', $source = array(
'Not Sure',
'Name 1',
'Name 2'
)
),
new TextareaField('Message', 'Message:', '5', '35')
)

In my template, I can produce the fields, but no names/labels for them. The following label shows up blank, but the input is shown. The fields are required, and if you click in the input box and click away without typing anything, I get the error message "Please fill out 'this', it is required." instead of the proper field name, it uses "this". Demo here - http://www.mcgowangroupinc.com/new/contact/

<label for="$FormName_Email">$FormName_Email</label>
$dataFieldByName(Email)

Also, the dropdown field gives the user an option to pick who the email should be sent to. I have this in my doForm() function which sends the email:

		if($fields->to == 0){
			$email->to = 'email 1';
		} elseif ($fields->to == 1) {
			$email->to = 'email 2';
		} elseif ($fields->to == 2) {
			$email->to = 'email 3';
		}

No matter which option is picked, it always sends to email 1. I've written the same thing using a switch statement with no luck either. In my email template, the variable $To produces the correct number associated in the drop down.

I'm sure I'm missing something obvious as its been a 12+ hour day.

Avatar
Liam

Community Member, 470 Posts

9 September 2008 at 12:11pm

The first part of my problem is due to using a custom template with the forTemplate() function. If I use a regular template, things are fine obviously. This part isn't to big of a deal and I can handle it later.

However, I'd really like to be able to solve the 2nd part. That is having a contact form with a drop down field so users can choose where the email gets sent to. Has anybody ever done this before that has code working?

My attempt above didn't work.