2012-03-09 57 views
0

我有以下HTML在我看來如何通過html調用控制器動作在Zend Framework中選擇更改選項?

<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> 

我想要做的是,我想打電話給我的行動平變化可以說

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

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

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

回答

1

在Zend Framework中,Action是中的方法一個Controller類並可通過URL訪問。例如,如果你的控制器類叫做「MathController」,它包含一個名爲「sixBySixAction」的行動,那麼你會被導航到看起來像一個URL觸發此操作:

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

注意的名字操作方法是控制器類中的駝峯式,但在URL中用破折號分隔。這是Zend Framework的格式要求。另請注意,控制器類被命名爲「MathController」,但您只需將「數學」放入URL即可。

所以,你可以使用JavaScript來分配你的選擇框中選擇一個onChange處理簡單地重定向到其處理由一個特定的控制器類中訪問特定的操作方法的改變特定的URL。

有關更多信息,Zend Framework的程序員參考指南退房this page

至於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> 
+0

我知道所有野蠻人說,但先生在我的情況下,我的意思是在變化的選項我將如何做? – 2012-03-09 13:11:12

+0

@FawadGhafoor我添加的如何處理使用JavaScript的onChange事件的例子。這是你需要的嗎? – 2012-03-09 14:22:56

1

爲什麼你想打電話給你的行動一樣,你需要更具體的

您可以使用AJAX獲取由您的操作生成的一些數據,或者您可以執行簡單的重定向。這取決於你想達到什麼。

的AJAX解決方案:

  1. 附加一個onchange事件處理程序select
  2. 處理程序發出一個AJAX請求到服務器,以正確的行動。您可以從控制器輕鬆輸出JSON數據使用$this->_helper->json($data)
  3. 你從服務器返回的信息,並注入到你的HTML文檔
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 
     } 
      }); 
    }): 

希望它的工作

相關問題