Magento 1.9 отправка пользовательской формы - данные формы не найдены в контроллере - PullRequest
0 голосов
/ 14 сентября 2018

У меня проблемы с простой формой.Я совершенно уверен, что мне не хватает критической информации по этой теме ...

Я создал пользовательский модуль, я создал пользовательскую форму

<?php

class modulename_History_Block_Adminhtml_History_Edit_Form extends Mage_Adminhtml_Block_Widget_Form {

protected function _prepareForm()
{
    $form = new Varien_Data_Form(array(
        'id' => 'edit_form',
        'name' => 'edit_form',
        'action'  => $this->getUrl('*/*/history', array('id' => 'orders_export')),
        'method'  => 'post',
        'enctype' => 'multipart/form-data',
        'data' =>'somethingsomethingdarkaside'
    ));

    $this->setForm($form);

    $fieldset = $form->addFieldset('Filtrování objednávek', array('legend'=> 'Nastavte filtr pro report objednávek'));
    $dateTimeFormatIso = Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);

    $fieldset->addField('date_from', 'date', array(
        'label'    => 'Změna statusu objednávek od:',
        'title'    => 'Změna statusu objednávek od:',
        'time'      => true,
        'name'     => 'filter_date_from',
        'image'    => $this->getSkinUrl('images/grid-cal.gif'),
        'format'   => $dateTimeFormatIso,
        'required' => true,
    ));

    $fieldset->addField('export_history_order_status_changed', 'button', array(
        'label' => 'Exportovat do souboru:',
        'value' => 'Export',
        'name'  => 'export_history_order_status_changed',
        'class' => 'form-button',
        'onclick' => "setLocation('{$this->getUrl('*/*/export')}')",
    ));

    $form->setUseContainer(true);

    return parent::_prepareForm();
}

И затем появился контроллер.Когда кнопка нажата, она переходит к правильному контроллеру для правильного действия.Однако данные по почте не получены:

<?php

class modulename_History_Adminhtml_History_HistoryController extends Mage_Adminhtml_Controller_Action {

protected function _initAction()
{
    return $this;
}

/**
 * A page with the form, creating the block with it.
 *
 */
public function editAction()
{
    $this->_title('Historie objednavky')
        ->loadLayout()
        ->_setActiveMenu('modulename/historymenu');

    $this->_addContent($this->getLayout()->createBlock('modulename_history/adminhtml_history_edit'));
    $this->renderLayout();
}

/**
 * A main entrance - when the filter is set and the "export" button pressed then this is the function which starts.
 *
 * @return bool|Mage_Core_Controller_Varien_Action - either we return a downloadable file or we return false.
 */
public function exportAction()
{
    if ($this->_setParameters())
    {
        if ($this->_setOrdersIds())
        {
            return $this->_getDownloadFile();
        }
    }

    return false;
}

/**
 * Try to get parameters from the admin form. If all correct then we return true. If there is something not set
 * then we are unable to continue and we return false.
 *
 * @return bool - either we were successful with getting the parameters or not.
 */
protected function _setParameters()
{
    $parameters = $this->getRequest()->getParams();
    $pokus = $this->getRequest()->getPost();
    $necf = $this->getRequest()->getPost('edit_form');
    $neco = Mage::app()->getRequest()->getParam('edit_form');
}
}

1 Ответ

0 голосов
/ 17 сентября 2018

Hellou,

, поэтому компетентная коллегия найдет ответ в течение нескольких минут.Я имею в виду, что это было так глупо, как и ожидалось, просто уберите действие нажатия на кнопку и установите заголовок от кнопки до формы.И изменил кнопку отправки.Я спрашиваю, парень, с которого я скопировал код, использовал другие заклинания высокой магии, так что это сработало для него.Я надеюсь, это поможет.Правильная форма ниже:

<?php

class modulename_History_Block_Adminhtml_History_Edit_Form extends 
Mage_Adminhtml_Block_Widget_Form {

protected function _prepareForm()
{
$form = new Varien_Data_Form(array(
    'id' => 'edit_form',
    'name' => 'edit_form',
    //'action'  => $this->getUrl('*/*/history', array('id' => 'orders_export')),
    'action'  => $this->getUrl('*/*/export', array('id' => 'orders_export')),
    'method'  => 'post',
    'enctype' => 'multipart/form-data',
    'data' =>'somethingsomethingdarkaside'
));

$this->setForm($form);

$fieldset = $form->addFieldset('Filtrování objednávek', array('legend'=> 'Nastavte filtr pro report objednávek'));
$dateTimeFormatIso = Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);

$fieldset->addField('date_from', 'date', array(
    'label'    => 'Změna statusu objednávek od:',
    'title'    => 'Změna statusu objednávek od:',
    'time'      => true,
    'name'     => 'filter_date_from',
    'image'    => $this->getSkinUrl('images/grid-cal.gif'),
    'format'   => $dateTimeFormatIso,
    'required' => true,
));

$fieldset->addField('export_history_order_status_changed', 'submit', array(
    'label' => 'Exportovat do souboru:',
    'value' => 'Export',
    'name'  => 'export_history_order_status_changed',
    'class' => 'form-button',
    //'onclick' => "setLocation('{$this->getUrl('*/*/export')}')",
));

$form->setUseContainer(true);

return parent::_prepareForm();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...