#jquery #ajax
#jquery #ajax
Вопрос:
Что-то не так в моем коде? Когда я запускаю программу, процесс ничего не делает. Я хочу получить информацию с помощью ajax
функции jQuery из двух функций моего контроллера, я использую фреймворк Codeigniter. Я получаю доступ к функциям по URL: $(«.SelectSubCategory»).load(«location / func2»). Но, как я уже сказал, ничего не происходит.
$(document).ready( function() {
$(".SelectCategory").change( function() {
var category=$(this).val();
var dataString = 'category=' category;
$.ajax
({
type: "POST",
url: $(".SelectSubCategory").load("location/func2"),
data: dataString,
cache: false,
success: function(html) {
$(".SelectSubCategory").html(html);
}
});
});
$(".SelectSubCategory").change( function() {
var category=$(this).val();
var dataString = 'category=' category;
$.ajax
({
type: "POST",
url: $(".SelectFunction").load("location/func"),
data: dataString,
cache: false,
success: function(html) {
$(".SelectFunction").html(html);
}
});
});
});
Комментарии:
1. Можете ли вы добавить:
error: function(e){ alert('Error: ' e); }
к своему вызову?2. Вы уверены, что $(«.SelectSubCategory»).load(«location/func2») возвращает действительный URL для вашего поста?
3. нет, ошибок нет, URL-адреса в порядке, все настроено, но нет выходных данных, с базой данных и контроллером все в порядке, поэтому я думаю, что отсюда ajax.
4. Что вы подразумеваете под URL-адресами в порядке? На основе опубликованного вами кода URL-адресам присваиваются объекты jQuery, которые абсолютно не подходят, если только вы не подправили код перед его публикацией.
5. Я исправил это, это было событие изменения, он создавал проблему. Все еще спасибо
Ответ №1:
Почему вы назначаете объекты jQuery параметру URL для вызовов ajax, т. е
url: $(".SelectSubCategory").load("location/func2")
url: $(".SelectFunction").load("location/func")
параметр URL должен быть допустимым URL того же домена, откуда загружается страница.
Что-то вроде: url:"location/func2"
или url:"do/something/file.php"
и т.д.
Комментарии:
1. Согласен. Я думаю, что это должна быть допустимая строка. Вы можете установить переменную равной тому, что возвращается из вашей функции, затем использовать эту переменную в качестве URL. Вопрос: Мне интересно, можете ли вы установить эту функцию в качестве переменной. Будет ли это работать тогда? Например: var functionName = функция(someVar){ /somecodeheretoreturncandy}
2. Я исправил это, это было событие изменения, он создавал проблему. Все еще спасибо
Ответ №2:
Сначала вам нужно повторно ввести URL, а затем выполнить свой ajax-вызов. Что-то вроде этого:
$.ajax({
url:"location/func2",
success: function(html) {
$.ajax({
type: "POST",
url: val,
data: dataString,
cache: false,
success: function(html) {
$(".SelectSubCategory").html(html);
}
});
}
});
Комментарии:
1. вы пробовали выводить только URL из первого запроса?
2. Я исправил это, это было событие изменения, он создавал проблему. Все еще спасибо