0

私のビューには次のhtmlがあります

<span style="float:right">  <label> Pattern :</label>
   <select>
     <option value="3*3">3*3</option>
     <option value="6*6">6*6</option>
     <option value="12*12">12*12</option>
  </select>
</span>

私がやりたいことは、私のアクションをonchangeと呼びたいということです。

   if(3*3) call this
    public function 3by3Action(){}

   if(6*6) call this
    public function 6by6Action(){}

   if(12*12) call this
    public function 12by12Action(){}
4

3 に答える 3

1

アクションをそのように呼び出したい理由をより具体的にする必要があります。

AJAX を使用して、アクションによって生成されたデータを取得したり、単純なリダイレクトを実行したりできます。それはあなたが何を達成したいかによります。

AJAX ソリューション:

  1. onchangeイベント ハンドラーをアタッチするselect
  2. ハンドラーは AJAX 要求をサーバーに発行し、正しいアクションを実行します。を使用して、コントローラーから JSON データを簡単に出力できます。$this->_helper->json($data)
  3. サーバーから情報を取得し、HTML ドキュメントに挿入します
于 2012-03-09T14:04:24.930 に答える
1

Zend Framework では、アクションは Controller クラス内のメソッドであり、URL 経由でアクセスできます。たとえば、Controller クラスが「MathController」と呼ばれ、「sixBySixAction」と呼ばれるアクションが含まれている場合、次のような URL に移動してこのアクションをトリガーします。

http://baseUrl/math/six-by-six

アクション メソッドの名前はコントローラー クラス内ではキャメル ケースですが、URL 内ではダッシュで区切られていることに注意してください。これは、Zend Framework のフォーマット要件です。また、コントローラ クラスの名前は「MathController」ですが、URL に「math」を入力するだけでよいことに注意してください。

したがって、JavaScript を使用して、特定のコントローラー クラス内の特定のアクション メソッドにアクセスすることによって変更を処理する特定の URL に単純にリダイレクトする onChange ハンドラーを選択ボックスに割り当てることができます。

詳細については、Zend Framework Programmer's Reference Guide のこのページを参照してください。

JavaScript部分に関しては、選択ボックスが変更されたときにリダイレクトする方法の例を次に示します。もちろん、これを変更する必要がありますが、これで開始できます。

<Script language="JavaScript">
  function goto(form) { var index=form.select.selectedIndex
    if (form.select.options[index].value != "0") {
      location=form.select.options[index].value;}
    }
</SCRIPT>

<FORM NAME="form1">
  <SELECT NAME="select" ONCHANGE="goto(this.form)">
    <OPTION VALUE="">-------Choose a Selection-------</OPTION>
    <OPTION VALUE="index.htm">Home</OPTION>
    <OPTION VALUE="web_development.htm">Web Development</OPTION>
    <OPTION VALUE="html_codes.htm">HTML Tips</OPTION>
    <OPTION VALUE="html_codes_chart.htm">HTML Code Chart</OPTION>
    <OPTION VALUE="javascript_codes.htm">JavaScript Codes</OPTION>
    <OPTION VALUE="216_color_chart.htm">Color Code Chart</OPTION>
  </SELECT>
</FORM>
于 2012-03-09T12:59:41.623 に答える
0

HTMLをこれに変更します

<select id="your_id">
  <option value="Threes">3*3</option>
  <option value="Six">6*6</option>
  <option value="Twele">12*12</option>
</select>

jsでこれを書く

$("#your_id").change(function() {
var action = $("#your_id").val();
 var href= "Controller/"+action +"/";
     var data = your data;

     $.ajax({ type: "GET",
           url: href,
          data: data,
          success: function(response){

                  //do what u wana do
         }
           });
   }):

それがうまくいくことを願っています

于 2012-03-09T15:01:27.777 に答える