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

在 Zend Framework 中,Action 是 Controller 类中的方法,可以通过 URL 访问。例如,如果您的 Controller 类名为“MathController”并且它包含一个名为“sixBySixAction”的操作,那么您可以通过导航到类似于以下内容的 URL 来触发此操作:

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

请注意,操作方法的名称在控制器类中是驼峰式的,但在 URL 中用破折号分隔。这是 Zend Framework 的格式要求。另请注意,控制器类名为“MathController”,但您只需将“math”放在 URL 中。

因此,您可以使用 JavaScript 为您的选择框分配一个 onChange 处理程序,该处理程序只是重定向到一个特定的 URL,该 URL 通过访问特定控制器类中的特定操作方法来处理更改。

有关这方面的更多信息,请查看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 回答
1

您需要更具体地说明为什么要这样称呼您的行为。

您可以使用 AJAX 来获取您的操作产生的一些数据,或者您可以进行简单的重定向。这取决于您想要达到的目标。

AJAX 解决方案:

  1. onchange事件处理程序附加到select
  2. 处理程序向服务器发出 AJAX 请求,以执行正确的操作。您可以使用以下方法轻松地从控制器输出 JSON 数据$this->_helper->json($data)
  3. 您从服务器获取信息并注入您的 HTML 文档
于 2012-03-09T14:04:24.930 回答
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 回答