如何在Joomla中的自定义数据库表中保存扩展参数

时间:2016-04-24 05:23:58

标签: php joomla joomla-extensions

我想为插件创建一个参数,该参数将从我自己的表中读取并存储。我使用自定义表单字段类型,但我不知道在哪里添加代码。

<?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>';
        }
    }

1 个答案:

答案 0 :(得分:1)

我考虑以下解决方案。

  • 您应该include JavaScript到您的页面。
  • 您应该将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();
                });
    
            });
       ');
    }}