Я использую codeigniter Framework. Я пытаюсь вызвать метод контроллера с помощью вызова функции 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 оповещения для проверки. alert
с сообщением 'category id =' вызывается при каждом событии изменения раскрывающегося списка, но alert
с сообщением "внутри вызова ajax" не отображается после 2 или 3 выбора раскрывающегося списка, даже если он не попадает в раздел ошибок вызова AJAX.
Я хотел бы знать, что здесь происходит не так? Спасибо за помощь.