我正在使用codeigniter框架。我试图在下拉更改事件中使用AJAX函数调用来调用控制器方法。我的代码是:
$(document).ready(function() {
$("body").on('change', '#assettype_id', function(e) {
var categoryval = $('#assettype_id :selected').val();
// assettype_id is dropdown id. On change event of
// dropdown, controller method will be called
myurl = 'http://mylocalsite/index.php/controllername/controllermethod/' + $.now();
alert("category id = " + categoryval); // for testing
$.ajax({
cache: false,
type: 'POST',
data: {
id: categoryval
},
url: myurl,
dataType: 'html',
success: function(data1) {
alert("inside ajax call"); // for testing
$('#result').html("");
// result is a div tag used to display result//
$("#result").html(data1);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('error');
},
complete: function(xhr, status) {
alert("The request is complete!");
}
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
此代码对于最初的2或3个下拉更改事件并获得新的输出是完美的,但是从下拉菜单中进行2或3个选择之后,不会像AJAX方法不起作用那样获得新结果。
我放置了2条警报进行检查。消息“类别ID =”的alert
在下拉菜单的每次更改事件上都被调用,但是经过2或3个下拉菜单选择后,即使消息alert
仍未显示到错误部分,但消息“内部ajax调用”却未显示AJAX通话。
我想知道这里出了什么问题?谢谢您的帮助。