0

目標は次のとおりです。別のテーブルに依存するカスタムフィールド(ドロップダウン)を備えた編集ビューがあります。そこで、アドレスのリスト(2番目のテーブル)から選択して、データ行のIDを保存できます。私はこれから始めました:

カスタムフィールドコード:

jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
JHTML::_('behavior.modal');
class JFormFieldInvoiceAdress extends JFormFieldList
{
    protected $type = 'invoiceadress';
    protected function getInput() {
        $db = JFactory::getDBO();
        $query = $db->getQuery(true);
        $query->select('id,zip,city,adress');
        $query->from('#__pb_invoiceadresses');
        $db->setQuery((string)$query);
        $types = $db->loadObjectList();
        $options = array();
        foreach($types as $type) {
        $options[] = JHTML::_('select.option', $type->id, $type->zip . " " . $type->city . ", " .$type->adress);
        }
        $dropdown = JHTML::_('select.genericlist', $options, $this->name, 'class="inputbox"', 'value', 'text', $this->value);
        $link = 'index.php?option=com_mycomponent&view=invoiceadresseedit&layout=edit&id=0';
        $dropdown .= "<a href=\"" . JRoute::_($link) . "\" class=\"modal\" rel=\"{handler: 'iframe', size: {x: 875, y: 550}, onClose: function() {}}\" >Neue Adresse</a>";                      
        return $dropdown ;
    }
}

これは今のところ機能しますが、このモーダルウィンドウを閉じて、モーダルウィンドウに請求書アドレスのリストビューが表示されない場合は、ドロップダウンの内容を更新する必要があります。

2番目の試みは、リンクに「tmpl = component」を追加することでしたが、保存ボタンがありません。私はそれをどのように達成するのか分かりません。誰かがすでにこれを解決しましたか?

4

1 に答える 1

0

解決策を見つけました。同じ質問をする次の人のために答えています。

このリンクを使用して編集ビューを呼び出します。

$link = 'index.php?option=com_mycomponent&view=invoiceadresseedit&layout=edit&id=0&tmpl=component';

これにより、残りの管理GUIとツールバーなしでフォームのみが表示されます。

次のように、編集フォームに保存ボタンを追加します。

<input class="button" type="submit" value="<?php echo JText::_('SAVE');?>"  onClick="window.parent.location.reload();" />

以上です。データが保存され、この後、モーダルウィンドウが閉じて現在のページがリロードされた後、ドロップダウンが新しいデータで更新されます。

于 2013-03-01T13:33:40.093 に答える