按钮重定向到网格页面

时间:2013-12-30 03:27:49

标签: magento-1.7 magento

我有一个自定义模块' banner'我在其第二个标签中添加了一个按钮(模块只有两个标签)。当点击该按钮时,它会自动提交我的横幅然后转到网格页面(它只是另一个保存按钮)。但是这个按钮的功能是添加一个上传图像field.ie只要点击按钮,就应该在我的标签文件中添加一个图像表单字段。这是我的标签文件。

<?php
class Karaokeshop_Banner_Block_Adminhtml_Banner_Edit_Tab_Image extends Mage_Adminhtml_Block_Widget_Form
{

    protected function _prepareForm()
    {
        $form = new Varien_Data_Form();
        $this->setForm($form);
        $fieldset = $form->addFieldset('banner_image', array('legend'=>Mage::helper('banner')->__('Banner Image')));
        //declaring a new custom form field and adding
        $fieldset->addType('add_button', 'Karaokeshop_Banner_Block_Adminhtml_Banner_Edit_Tab_Field_Custom'); 
        $fieldset->addField('banner_img_add_button', 'add_button', array(
            'title' => Mage::helper('banner')->__('Add Banner Image'),
            'id' => 'add_banner_img_button',
            'class' => 'scalable save',
            'style' => '',
            'onclick' => 'banner.add(this)',
            'type' => 'button',                    
        ));

         return parent::_prepareForm();                                                    
    }  

} 

这是我的按钮定义文件

<?php
class Karaokeshop_Banner_Block_Adminhtml_Banner_Edit_Tab_Field_Custom extends Varien_Data_Form_Element_Abstract
{
public function __construct($attributes=array())
{
    parent::__construct($attributes);
}
public function getElementHtml()
{              
    $value = $this->getTitle();
    $onclick=$this->getOnclick();
    $class=$this->getClass();
    $id=$this->getId();
    $style=$this->getStyle();
    $type=$this->getType();
    $html='<button id="'.$id.'" class="'.$class.'" style="'.$style.'" onclick="'.$onclick.'" type="'.$type.'" title="'.$value.'">'.$value.' </button>';
    $html .= '<p id="' . $this->getHtmlId() . '"'. $this->serialize($this->getHtmlAttributes()) .'>
            <script type="text/javascript">
            //<![CDATA[

                var banner =  
                {                                                       
                        add : function(obj) 
                        {                                    

                        },

                };
            //]]>
            </script>
        </p>';
return $html;
}
}

如何将按钮更改为添加按钮?我该怎么做才能避免按钮的这种提交功能。请帮我。提前致谢

1 个答案:

答案 0 :(得分:1)

首先,您需要从块中调用您的phtml:

class My_Moudles_Block_Adminhtml_Image_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
   public function __construct()
  {

        parent::__construct();
        $this->setTemplate('modules/imageupload.phtml');
        $this->setFormAction(Mage::getUrl('*/*/imageupload'));


  }

然后在adminhtml/default/default/template/yourmodule/imageupload.phtml中创建文件并将此代码放在那里。

<div class="entry-edit">
    <div class="entry-edit-head">
    <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('General')?></h4>
    <div class="form-buttons"></div>
</div>
<form id="imageform" method="post" action="<? echo $this->getFormAction(); ?>">
    <div id="rules_form" class="fieldset ">
    <div class="hor-scroll">

                        <table cellspacing="0" class="form-list">
            <tbody>
          <tr>
    <td class="label"><?php echo $this->__('Add Image')?></td>
    <td class="grid tier" colspan="10">
    <table cellspacing="0" id="chain_tiers" class="chain border" style=" width:465px; ">
        <thead>
            <tr class="headings">

                <th><?php echo $this->__('Image')?></th>
                <th class="last"><?php echo $this->__('Action')?></th>
            </tr>
            <tr class="template no-display" id="email_chain_add_template">

                <td class="nobr">
                    <input type="file" id="chain_Image" value="0" name="imageg" class="requried-entry input-text">
                </td>

                <td class="last"><input type="hidden" value="" disabled="no-template" class="delete" name="email_chain[__index__][delete]"><button onclick="emailsControl.deleteItem(event);return false" class="scalable delete icon-btn delete-product-option" title="Delete Image"><span><?php echo $this->__('Delete')?></span></button></td>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <td></td>
                <td class="a-right" colspan="6">
                    <button style="" onclick="emailsControl.addItem()" class="scalable add" type="button" title="Add email" id="id"><span><span><span><?php echo $this->__('Add Image')?></span></span></span></button></td>
            </tr>
        </tfoot>
        <tbody id="email_chain_container">
                <tr>
                <td class="nobr">
                    <input type="file" id="chain_Image" value="" name="Image[]" class="input-text">
                </td>
                <td class="last"><input type="hidden" value="" class="delete" name="email_chain[delete][]"><button onclick="emailsControl.deleteItem(event);return false" class="scalable delete icon-btn delete-product-option" title="Delete Image"><span><?php echo $this->__('Delete')?></span></button></td>
            </tr>
              </tbody>
    </table>

<script type="text/javascript">
//&lt;![Cchain[

    var emailsControl = {
            itemsCount : 0,
            deleteButton : false,
            addItem : function () {
            var chain = {};
            chain.TEMPLATE_ID = 0;
            chain.index = this.itemsCount++;
            if (arguments.length == 1) {
            chain.TEMPLATE_ID = arguments[0];
            }
            var s = '<tr>' + $('email_chain_add_template').innerHTML.replace(/__index__/g, '#{index}').replace(/\sdisabled="?no-template"?/g, ' ').replace(/disabled/g, ' ').replace(/="'([^']*)'"/g, '="$1"') + '</tr>';
            var template = new Template(s); 

            Element.insert($('email_chain_container'), {'bottom': template.evaluate(chain)});
            $('chain_row_'+chain.index+'_TEMPLATE').value   = chain.TEMPLATE_ID;
            maxItemsCount++;

        },

        deleteItem : function(event) {
            var tr = Event.findElement(event, 'tr');
            if (tr) {
                jQuery(tr).remove();
            }
        }
    }
    var maxItemsCount = 2;
//]]&gt;
</script>
</td>
</tr>
            </tbody>
        </table>
            </div></form>
        </div>
</div>

希望这能解决您的问题。 对于编辑,您可以这样做:

<tbody id="email_chain_container">
            <?php  foreach($images as $row){ ?><tr>
   <td class="nobr">
                   your image code
                </td></tr>