バックエンドでモジュールを作成しているので、シェルモジュールを作成しました(管理者のトップメニューのアイテムとアクセスするページ)。基本的に、管理者が数字を入力してボタン「追加」をクリックできる入力フィールドが必要です"、これにより、データベース内の既存のテーブルに行が挿入されます。
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$connection->beginTransaction();
$fields = array();
$fields['name']= 'andy';
$connection->insert('test', $fields);
$connection->commit();
データベース内に「test」というテーブルがあります。上記のコードを Controller ファイルに入れると、管理ページにアクセスしたときにデータベースに行が正常に追加されます。しかし、挿入されたデータをユーザーが入力できるようにする必要があります。
そのコードをモデルに移動し、何らかの方法で入力データをモデルに送信して、それで作業を行わせる必要がありますか? か否か。これが正しければ、誰かがモデルへのデータ送信を研究するのに適した場所を教えてもらえますか? (それさえ可能なら)
iv たくさんのチュートリアルを試しましたが、どれも私が必要としているものには大きすぎます。何も表示する必要はありません。入力ボックスと保存ボタンがあれば十分です。
編集
以下を含むファイル block/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] をエコーすると、空白のページだけが表示されます
アイデアや指針はありますか?