我是joomla的初学者。我在前端有一个联系表单,我希望在选择国家时获取状态下拉列表。此联系表单显示在myproject / components / com_contact / views / contact / tmpl / default_form.php。我有一个国家下降。我想对联系人控制器中的函数filterState()进行ajax调用。这是我的ajax代码
`<script>
$( document ).ready(function() {
$( "#jform_contact_country" ).change(function(){
var id = $( "#jform_contact_country option:selected" ).val();
alert(id);
$.ajax({
url: "index.php",
data: 'option=com_contact&task=filterState()&country_id='+id,
success: function(data) {
alert('succes');
}
});
});
});
</script>`
方法filterStae位于contact.php中,该文件位于myproject / components / com_contact / controllers /中。但是,当我更改国家/地区时,此函数未被调用,并且调用将转到index.php并且不会转到此页面?如何实际调用此函数?
答案 0 :(得分:0)
尝试将代码更改为此代码:
<script>
$(document).ready(function() {
$("#jform_contact_country").change(function(){
var id = $("#jform_contact_country option:selected").val();
alert(id);
$.ajax({
url: "index.php?option=com_contact&task=CONTROLLER_NAME.filterState&country_id="+id,
success: function(data) {
alert('succes');
}
});
});
});
</script>
使用/ controllers /中的控制器文件名更改 CONTROLLER_NAME
从我的代码中可以看出,要访问控制器的方法,任务值应为CONTROLLER_NAME.METHOD_NAME