проблема с jquery / ajax

#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. Я исправил это, это было событие изменения, он создавал проблему. Все еще спасибо