2011-07-27 7 views
0

私はmagentoを初めて使っています。私は可能な場合は、URLに行くことなくコントローラを呼び出すことができるかどうかを知る必要がありました。私がしたいのは、コントローラに電話をかけて同じページにとどまることです。フロントエンドにはユーザー入力を受け付けるフォームがあり、モデルを使用してデータをデータベースに保存するコントローラを呼び出すよりも、 Eveythingはうまくいくが、私の問題はユーザーがサブミットボタンをクリックすると、ユーザーはコントローラのURLに行きますが、私は同じページにとどまってコントローラを呼び出したいということです。ただ、関連するコントローラ/アクション呼び出して、それが結果に何もしないURLをmagentoに入れてコントローラを呼び出す方法

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

:ここに私のコードconvert to AJAXへの最も簡単な方法は、次のようにボタンを変更することである

<?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> 
+0

あなたはAJAXでURLをリクエストすることを意味しますか? – clockworkgeek

+0

アクションコントローラーを呼び出すためにAJAXを使用していれば、あなたが正しいかもしれないと思います。それは実際のコントローラのURLにユーザーを連れて行くことなくコントローラを呼び出す必要があります... –

+0

私はどのようにそれを行うにはどのようなアイデアを使用していない...ちょうど私をしてください –

答えて

1

です。

+0

ちょっと感謝waoo男はとても簡単...私は学ばなければならない私はAJAXを使うと問題があるようです。 –

+0

検証からのMagentoはもう機能していません –

+1

それは良い点です。フォームは決して提出しないので(イベントは 'false'を返します)、通常の検証ステップは欠落しています。私はAJAXの前に検証するために私の答えを更新しました。 – clockworkgeek

関連する問題