我在视图中有以下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(){}
答案 0 :(得分:1)
在Zend Framework中,Actions是Controller类中的方法,可通过URL访问。例如,如果您的Controller类被称为“MathController”并且它包含一个名为“sixBySixAction”的操作,那么您将通过导航到类似于以下内容的URL来触发此操作:
http://baseUrl/math/six-by-six
请注意,action方法的名称在控制器类中是camel case,但在URL中用短划线分隔。这是Zend Framework的格式化要求。另请注意,控制器类名为“MathController”,但您只需将“math”放在URL中。
因此,您可以使用JavaScript为您的选择框分配一个onChange处理程序,它只是重定向到一个特定的URL,该URL通过访问特定控制器类中的特定操作方法来处理更改。
有关这方面的更多信息,请查看Zend Framework Programmer's Reference Guide中的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>
答案 1 :(得分:1)
您需要更明确地了解为什么您想要像这样调用您的行为。
您可以使用AJAX获取操作产生的某些数据,也可以执行简单的重定向。这取决于你想要达到的目标。
AJAX解决方案:
onchange
事件处理程序附加到select
$this->_helper->json($data)
答案 2 :(得分: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
}
});
}):
希望它有效