1

我在 magento 中有一个管理模块。提交表单后,我希望能够显示“请稍候”弹出窗口(与更改类别时获得的方式相同)。我目前没有使用任何 AJAX,但假设我需要使用 ajax 提交表单。我没有任何 phtml 文件,因为我的表单信息是以编程方式设置的(因为它是动态的)。

有人可以指出我在magento中使用“请稍候”的正确方向,无论是否有AJAX?

如果您需要有关我如何显示表单的更多信息,请告诉我,因为我不知道需要什么信息,也不想只是用随机片段填充我的帖子。

解决

只是为了清楚地保存评论:

我覆盖了默认的保存按钮来添加一个 JS onclick:

$this->_updateButton('save', 'onclick', 'submitForm()');

然后我使用了一个 JS 文件layout.xml

<reference name="head">
    <action method="addJs"><script>mymodule/javascript.js</script></action>
</reference>

然后添加了一个JS函数:

function submitForm(){
    $('edit_form').request({
         onComplete: function()  { 
             window.location.href = document.URL; 
         }
     })  
}

这为我整理了。

4

2 回答 2

13

这是添加请等待微调器的最常见页面,所以我想我会在这里增加答案,以供我们这些在不通过 ajax 提交时希望在其中显示微调器但做一些其他 js 时找到此页面的人加工。

有一种非常简单的方法可以显示微调器(adminhtml 模板),即在您的页面中添加以下 js:-

Element.show('loading-mask');
/* do your js stuff here */
Element.hide('loading-mask');

请记住,任何执行的 ajax 都会隐藏您的加载掩码本身,因此如果单击按钮,您可能希望之后再次重新显示掩码。

于 2013-07-31T13:59:04.850 回答
2

默认情况下,在 magento admin 中,您使用以下代码提交的任何 ajax 都将显示“请稍候”

function submitForm(){
   new Ajax.Request(url, {
      method:'post',
      .....
   });
 }


$fieldset->addField('submit', 'submit', array(
      'label'     => Mage::helper('form')->__('Submit'),
      'required'  => true,
      'onclick' => "submitForm",
      'value'  => 'Submit()',
      'after_element_html' => '<small>Comments</small>',
      'tabindex' => 1
    ));

看一看 @

http://www.excellencemagentoblog.com/magento-admin-form-field

http://turnkeye.com/blog/magento-admin-form/

于 2013-02-06T17:13:23.297 回答