所以我在后端创建了一个模块,我创建了一个 shell 模块(管理顶部菜单中的项目和一个要访问的页面。)基本上我想要一个输入字段,管理员可以输入一个数字然后单击一个按钮“添加",这将在数据库中的现有表中插入一行。
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$connection->beginTransaction();
$fields = array();
$fields['name']= 'andy';
$connection->insert('test', $fields);
$connection->commit();
我的数据库中有一个名为“test”的表。如果我将上面的代码放入我的控制器文件中,当我访问管理页面时,它会成功地向数据库添加一行。但我需要允许用户输入插入的数据。
我是否必须将该代码移动到模型中并以某种方式将输入数据发送到模型并让它完成工作?或不。如果这是正确的,有人可以指出我研究将数据发送到模型的好地方吗?(如果可能的话)
iv 尝试了很多教程,但它们对于我需要的东西来说都很大,我不需要显示任何东西,我只需要一个输入框和一个保存按钮。
编辑
我创建了一个文件块/Adminhtml/Form/Edit/Form.php,其中包含以下内容。. .
class AndyBram_Presbo_Block_Adminhtml_Form_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
{
protected function _prepareForm()
{
$form = new Varien_Data_Form(
array(
'id' => 'edit_form',
'action' => $this->getUrl('*/*/test'),
'method' => 'post',
)
);
$form->setUseContainer(true);
$this->setForm($form);
$fieldset = $form->addFieldset('display', array(
'legend' => 'Display Settings',
'class' => 'fieldset-wide'
));
$fieldset->addField('label', 'text', array(
'name' => 'label',
'label' => 'Label',
));
if (Mage::registry('andybram_presbo')) {
$form->setValues(Mage::registry('andybram_presbo')->getData());
}
return parent::_prepareForm();
}
}
然后在我的控制器中,我有 2 个功能,如下所示。. .
public function indexAction()
{
$this->loadLayout();
$this->_addContent($this->getLayout()->createBlock('presbo/adminhtml_form_edit_form'));
}
public function testAction()
{
echo 'form data here';
$this->loadLayout();
$this->renderLayout();
}
表单显示成功,但没有发送按钮或说“执行操作”
进一步编辑
我已成功向表单添加了一个提交按钮,该按钮成功进入 testAction 并回显“此处的表单数据”。
然后我如何访问数据,
iv 添加了以下行
$postData = $this->getRequest()->getPost();
现在,如果我回显 $postData,它只会放置“数组”
如果我回显 $postData[0] 它不会放任何东西只是一个空白页
任何想法或指示?