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   532 Views

Avatar
Andre

Community Member, 126 Posts

6 October 2013 at 12:02am

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

Community Member, 126 Posts

10 October 2013 at 1:49am

Anyone with an idea here?

Avatar
martimiz

Forum Moderator, 1132 Posts

10 October 2013 at 2:26am

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