Administration Magento formulaire redirige vers le tableau de bord ?post?

Magento 1.7.0.2:
Je vais essayer d'obtenir un formulaire (dans le backend) pour télécharger un fichier(image) pour Poste à elle-même si elle est incomplète, ou le adminhtml contrôleur si elle est complète. Ma validation JavaScript fonctionne bien, mais quand/si mon formulaire est Publié, je suis redirigé vers le tableau de bord. J'ai un formulaire de clés inclus et mes url sont créés avec la clé spéciale, mais je ne peux pas avoir un POSTE à travers. Quelqu'un peut-il m'aider?

La phtml fichier de modèle:

<script type="text/javascript">
function postSelf(){
form=document.getElementById('imgSel');
form.action='<?php Mage::helper("adminhtml")->getUrl("*/*/")?>';
form.submit();
}    
function validateForm(){
var name=document.forms["imgSel"]["iName"].value;
var file=document.forms["imgSel"]["file_upload"].value;
if (!name){
alert("You must have an Image Name!");
postSelf();
}
else if (!file){
alert("You must have a File to upload");
postSelf();
}
else{
form=document.getElementById('imgSel');
form.submit();
} 
}  
</script>
<?php Mage::log(Mage::helper("adminhtml")->getUrl("*/*/"), null, layout.log );?>
<h3 class="icon-head head-adminhtml-imagegrid">Add an Image:</h3>
<form name="imgSel" id="imgSel" action="<?php Mage::helper("adminhtml")->getUrl("*/*/insert")?>" 
enctype="multipart/form-data" method="POST">
<!--Form key-->
<input type="hidden" name="form_key" value="<? echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
<?php Mage::log(Mage::getSingleton('core/session')->getFormKey(), null, layout.log );?>
<label for="iName">Image Name:</label>
<input type="text" name="iName">
<label for="style">Associated Style Name:</label>
<select name="style">
<?php
echo '<option value="-1">None</option>';
$styles = Mage::getModel('cartonplugin/cartonstyle')->getCollection();
foreach($styles as $style){
echo '<option value="'.$style->getId().'"';
echo '>'.$style->getData('style_name').'</option> ';
}
echo '</select><br />';
?>
<input type="hidden" name="MAX_FILE_SIZE" value="40" />
Upload Image: <input type="file" name="file_upload" />
<br>
<!--<input type="submit" value="submit">-->
<button onClick="validateForm()" class="UploadButton" >Upload</button>
</form>

Contrôleur: Seul le insertAction() la fonction est de cette forme. Le reste est gridview trucs pour traiter toutes les images téléchargées.

<?php
class Nationwide_Newcart_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action
{
protected function _initAction()
{
$this->loadLayout()->_setActiveMenu('igrid/set_time7')
->_addBreadcrumb('image Manager','image Manager');
return $this;
}
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
//var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles());
}
public function newAction()
{
$this->_forward('edit');
}
public function editAction()
{
$stId = $this->getRequest()->getParam('id');
$model = Mage::getModel('newcart/imagemodel')->load($stId);
if ($model->getId() || $stId == 0)
{
Mage::register('image_data', $model);
$this->loadLayout();
$this->_setActiveMenu('igrid/set_time7');
$this->_addBreadcrumb('image Manager', 'image Manager');
$this->_addBreadcrumb('Image Description', 'Image Description');
$this->getLayout()->getBlock('head')
->setCanLoadExtJs(true);
$this->_addContent($this->getLayout()
->createBlock('newcart/adminhtml_imagegrid_edit'))
->_addLeft($this->getLayout()
->createBlock('newcart/adminhtml_imagegrid_edit_tabs')
);
$this->renderLayout();
}
else
{
Mage::getSingleton('adminhtml/session')
->addError('That Image does not exist');
$this->_redirect('*/*/');
}
}
public function saveAction()
{
if ($this->getRequest()->getPost())
{
try {
$postData = $this->getRequest()->getPost();
$model = Mage::getModel('');
//Mage::log($this->getRequest()->getParam('id'), null, ‘layout.log’ );
if( $this->getRequest()->getParam('id') <= 0 )
$model->setCreatedTime(
Mage::getSingleton('core/date')
->gmtDate()
);
$model
//->addData($postData) //DO NOT! Includes a form key!
->setUpdateTime(
Mage::getSingleton('core/date')
->gmtDate())
->setId($this->getRequest()->getParam('id'));
$model->setData('image_name', $postData['image_name']);
$model->setData('style_name', $postData['style_name']);
$model->save();
Mage::getSingleton('adminhtml/session')
->addSuccess('successfully saved');
Mage::getSingleton('adminhtml/session')
->settestData(false);
$this->_redirect('*/*/');
return;
} catch (Exception $e){
Mage::getSingleton('adminhtml/session')
->addError($e->getMessage());
Mage::getSingleton('adminhtml/session')
->settestData($this->getRequest()
->getPost()
);
$this->_redirect('*/*/edit',
array('id' => $this->getRequest()
->getParam('id')));
return;
}
}
$this->_redirect('*/*/');
}
public function deleteAction()
{
if($this->getRequest()->getParam('id') > 0)
{
try
{
$model = Mage::getModel('newcart/imagemodel');
$model->setId($this->getRequest()
->getParam('id'))
->delete();
Mage::getSingleton('adminhtml/session')
->addSuccess('successfully deleted');
$this->_redirect('*/*/');
}
catch (Exception $e)
{
Mage::getSingleton('adminhtml/session')
->addError($e->getMessage());
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
}
}
$this->_redirect('*/*/');
}
public function insertAction(){
$postData = $this->getRequest()->getPost();
Mage::log($postData, null, layout.log );
//post checking
if(empty($postData)){
}
$this->_redirect('*/*/');
}
}
votre $_POST sont à venir vide??
Je ne sais pas. Ce que j'aurais est perdu lorsque la page est redirigé. Je sais que mon contrôleur n'est jamais un POST de ce.
Pouvez-vous coller contrôleur de code ?
Vous pouvez ajouter <?php echo $this->getBlockHtml('formkey'); ?> après la forme de l'élément

OriginalL'auteur Eric Bagwell | 2012-09-26