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.

General Questions

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Form Submit onChange without submit Button


Reply

3 Posts   476 Views

Avatar
Andre

6 October 2013 at 12:02am Community Member, 126 Posts

Hi,

I have written a simple Dropdown Form with Submit Button, to change/select the page language.

Here is the code:

<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
class BootstrapNavbarLanguageForm extends Form {

public function __construct($controller, $name, $fields = null, $actions = null) {

$Laguages = array();

foreach(LocaleGeoip::get_available_languages() as $Locale => $Language){
$Languages[$Locale] = _t('BootstrapNavbarLanguageForm.'.$Language, $Language);
}

// Create fields
$fields = new FieldList(
$locale = new DropdownField('Locale', "", $Languages, i18n::get_locale())
);
$locale->addExtraClass('span2');
// Create actions
$actions = new FieldList(
$submit = new FormAction('updateLang', _t('BootstrapNavbarLanguageForm.SUBMIT','BootstrapNavbarLanguageForm.SUBMIT'))
);
$submit->addExtraClass('btn');

parent::__construct(
$controller,
$name,
$fields,
$actions
);
}

public function updateLang(array $data){

if($o_Member = Member::currentUser()) {

$o_Member->Locale = $data['Locale'];

$o_Member->write();
}

i18n::set_locale($data['Locale']);

Session::set('Locale', $data['Locale']);

Controller::curr()->redirectBack();
}
}

Now I want this form to be used without the submit button. It just should submit on changing the dropdown. I know, I can work here with jQuery and that is not the problem.

But how to I create the code and the submit actions, without adding a(visible) submit button?

I can try to add an empty $action. But how do I tell the form, to use the updateLang method, when being submitted?

Avatar
Andre

10 October 2013 at 1:49am Community Member, 126 Posts

Anyone with an idea here?

Avatar
martimiz

10 October 2013 at 2:26am Forum Moderator, 1095 Posts

Why not make the action (button) invisible using css?