Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 如何通过Zend Framework中更改的html选择选项调用控制器操作?_Zend Framework_Zend Form Element_Zend Controller - Fatal编程技术网

Zend framework 如何通过Zend Framework中更改的html选择选项调用控制器操作?

Zend framework 如何通过Zend Framework中更改的html选择选项调用控制器操作?,zend-framework,zend-form-element,zend-controller,Zend Framework,Zend Form Element,Zend Controller,我的视图中有以下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</opti

我的视图中有以下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>

在Zend框架中,动作是控制器类中的方法,可以通过URL访问。例如,如果您的控制器类名为“MathController”,并且它包含一个名为“sixBySixAction”的操作,则您可以通过导航到类似以下内容的URL来触发此操作:

http://baseUrl/math/six-by-six
注意,action方法的名称在controller类中是大小写的,但在URL中用破折号分隔。这是Zend Framework的格式要求。还要注意,控制器类名为“MathController”,但您只需在URL中输入“math”

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

有关这方面的更多信息,请查看Zend Framework程序员参考指南

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

函数goto(form){var index=form.select.selectedIndex
if(form.select.options[index].value!=“0”){
location=form.select.options[index].value;}
}
-------选择一个选项-------
家
网络开发
HTML提示
HTML代码图
JavaScript代码
色码图

您需要更具体地说明为什么要这样调用您的操作

您可以使用AJAX获取操作生成的一些数据,也可以执行简单的重定向。这取决于你想要实现什么

AJAX解决方案:

  • onchange
    事件处理程序附加到
    select
  • 处理程序向服务器发出AJAX请求,以执行正确的操作。您可以使用
    $this->\u helper->JSON($data)
  • 您从服务器获取信息并将其注入HTML文档

  • 将您的html更改为

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

    希望它能起作用

    我知道你说的所有wt,但先生,在我的例子中,我的意思是在关于更改的选项中,我将如何做到这一点???@FawadGhafoor我添加了一个如何使用JavaScript处理onChange事件的示例。这是你需要的吗?
    <select id="your_id">
      <option value="Threes">3*3</option>
      <option value="Six">6*6</option>
      <option value="Twele">12*12</option>
    </select>
    
    $("#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
             }
               });
       }):