我想为插件创建一个参数,该参数将从我自己的表中读取并存储。我使用自定义表单字段类型,但我不知道在哪里添加代码。
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.form.formfield');
class JFormFieldMyOptions extends JFormField {
protected $type = 'myOptions';
public function getInput() {
return '<select id="'.$this->id.'" name="'.$this->name.'">'.
'<option value="1" >Option 1</option>'.
'<option value="2" >Option 2</option>'.
'<option value="3" >Option 3</option>'.
'</select>';
}
}
答案 0 :(得分:1)
我考虑以下解决方案。
您应该将JavaScript事件附加到表单。提交表单时,您将获得选项值,并通过AJAX将其发送给您的控制器。该脚本将该值存储在您的数据库中。 您应该使用RAW controller。
class JFormFieldMyOptions extends JFormField {
protected $type = 'myOptions';
public function getInput() {
return '<select id="'.$this->id.'" name="'.$this->name.'">'.
'<option value="1" >Option 1</option>'.
'<option value="2" >Option 2</option>'.
'<option value="3" >Option 3</option>'.
'</select>';
}
$document = JFactory::getDocument();
$document->addScriptDeclaration('
jQuery(document).ready(function() {
jQuery("#form_id").on("submit", function(event) {
var optionValue = jQuery("#'.$this->id.'").val();
// Send the option value to your script via AJAX.
// ....
// Submit the form.
jQuery("#form_id").submit();
});
});
');
}}