Magento:如何在保存后填写表单数据?

时间:2016-01-05 05:24:51

标签: php forms magento

我正在为我的扩展程序创建自定义表单。在表单中,我有几个字段,我保存在数据库中。我的问题是,一旦我保存字段,它们就会保存在数据库中,但在页面刷新后,字段中的数据变为空。

我希望这些字段数据保留在字段中。我怎么做?有没有办法做到这一点。

表单代码位于此文件app\code\community\CompanyNmae\ModuleName\Block\Adminhtml\Suretaxconfig\Edit\Form.php

并保存配置方法在此文件中

app\code\community\CompanyNmae\ModuleName\controllers\Adminhtml\ModuleController.php

Form.php的代码在这里。项目中没有用于我的扩展程序的HTML或PHTML。

<?php

class CompanyName_Modulename_Block_Adminhtml_ModuleConfig_Edit_Form extends Mage_Adminhtml_Block_Widget_Form{
    protected function _prepareForm() {
        $form = new Varien_Data_Form (
                array('id'=>'edit_form', 'action'=>$this->getData('action'), 'method'=>'post')
                );

        $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('modulename')->__('ModuleName Settings'),
            'class'=>'fieldset-wide'));

        $fieldset->addField('companycode', 'text', array(
            'name' => 'companycode',
            'label' => Mage::helper('modulename')->__('Client Number'),
            'title' => Mage::helper('modulename')->__('Client Number'),
            'required' => true,
            'after_element_html' => '<small>Enter Client Number</small>'
        ));

        $fieldset->addField('validationkey', 'text', array(
            'name' => 'validationkey',
            'label' => Mage::helper('modulename')->__('Validation Key'),
            'title' => Mage::helper('modulename')->__('Validation Key'),
            'required' => true,
            'after_element_html' => '<small>Enter Company Validation Key </small>'
        ));

        $fieldset->addField('select_provider_type', 'select', array(
          'label'     => Mage::helper('modulename')->__('Default Provider Type'),
          'class'     => 'required-entry',
          'required'  => true,
          'name'      => 'providertype',
          'onclick' => "",
          'onchange' => "",
          'value'  => '1',
          'values' => array('70' => '70', '99' => '99'),
          'disabled' => false,
          'readonly' => false,
          'after_element_html' => '<small>Default Provider Type</small>',
          'tabindex' => 1
        ));

        $form->setUseContainer(true);
        $this->setForm($form);

        return parent::_prepareForm();
    }

2 个答案:

答案 0 :(得分:0)

您可以从数据库中获取数据并将该数据填充到字段中,或者您可以在将数据保存到数据库之前使用会话并将表单值存储到其中,当它重定向到您的表单页面时,您可以检查值是否存在然后您填写表格

答案 1 :(得分:0)

您的问题有点混乱,我假设您希望在表单提交后保留字段数据字段....

这是方案,然后您可以使用PHP会话在会话中存储数据,如果设置了会话则检查页面加载然后显示它。

像:

<强> PHP

session_start();
// you can set session on form submit using if(isset($_POST)){//set session here}
$_SESSION['example'] = "Example Value";

<强> HTML

<input type="text" name="example" value="<?=(isset($_SESSION['example']) ? $_SESSION['example'] : ''); ?>"/>