如何在不进入magento的url的情况下调用控制器

时间:2011-07-27 10:09:57

标签: php magento prototypejs

我是magento的新手。我需要知道是否可以在不进入url的情况下调用控制器。我想要做的是打电话给控制器,但保持在同一页面。我在前端有一个表单接受用户输入,而不是通过使用模型调用控制器将数据保存在数据库中。 Eveything工作正常,但我的问题是,当用户点击提交按钮时,用户会转到控制器网址,但我想留在同一页面,但要打电话给控制器。这是我的代码

<?php $_product = $this->getProduct(); ?>


<form id="test" action="<?php echo Mage::getUrl('pricenotify/pricenotify/db') ?>" method="post">

            <label for="price">Price *</label>
            <input type="text" id="price" name="price" value="" class="required-entry validate-number"/><br />
            <label for="email">Email Address *</label>
            <input type="text" id="email" name="email" value="" class="required-entry validate-email"/>
            <input type="hidden" id="id" name="id" value="<?php echo $_product->getId() ?>" />
            <input type="hidden" id="propri" name="propri" value="<?php echo $_product->getPrice() ?>" />

            <input type="submit" name="submit" value="<?php echo $this->__('Submit') ?>" />


</form>

<script type="text/javascript">
//< ![CDATA[
var customForm = new VarienForm('test',true);
//]]>
</script>

1 个答案:

答案 0 :(得分:1)

convert to AJAX最简单的方法是修改按钮,如下所示:

<input type="submit" name="submit" value="<?php echo $this->__('Submit') ?>"
    onclick="if(customForm.validator && customForm.validator.validate()) this.form.request(); return false;" />

它对结果没有任何作用,只需调用相关的控制器/动作。