JQuery GET не работает - PullRequest
       2

JQuery GET не работает

2 голосов
/ 23 августа 2010

В качестве предисловия позвольте мне сказать, что я ... новичок в jQuery.У меня есть концепция и большая часть использования downpat, но я еще не совершенен со всеми этими скобками и функциями.

Поэтому я, вероятно, здесь и делаю любительскую ошибку.Я использую следующий код для отправки некоторых данных, перехожу к следующему разделу страницы и затем пытаюсь загрузить новый контент в раскрывающееся меню следующего раздела:

    $('#submit').click(function() {

    var nam = $('#name').val();
    var par = $("#parentCategory").val();
    var dat = $("#catDate").val();

    $.post("<?php echo site_url('admin/add_gallery'); ?>", {name: nam, parent: par, cat_date: dat}, function() {
        if (par != 'undefined')
        {
            $('#next_tab').click()
        }
        else
        {
            $("#gallery").click(),
            $("#name").val('')
        }
    });

    $.get("http://www.example.com/admin/get_galleries", function(gals)
    { // Get the Contents of Drop Down Gallery Select
        $("#galleryChoose").html(gals);
    }); 

    alert('yop');       

});

К сожалению, это не работает.POST работает отлично, но #galleryChoose (тэг

) никогда не заполняется новым контентом.

URL-адрес, который я вызываю с помощью GET (обычно это URL-адрес моего сайта тестирования, который я изменил)это в качестве примера) производит выпадающий список со всеми последними элементами, но ссылка на него с помощью GET, похоже, не работает.Должен ли я вернуть его для GET каким-то конкретным способом?Я просто сейчас использую return $variable, где переменная $ содержит весь HTML.

Любая помощь будет принята с благодарностью.Долгая ночь боролась с этим.

ОБНОВЛЕНИЕ: это код, на который я ссылаюсь по URL (это CodeIgniter, так что это в моем контроллере):

    function get_galleries()
{
    $galleries = $this->find->all_items('galleries');
    $return = '<label>Choose the Gallery:</label> <br />';
    $return .= '<select id="galleryParent" name="galleryParent">';
    foreach ($galleries as $gals)
    {
        $return .= '<option id="'.$gals->gal_name.'" value="'.$gals->gal_id.'">'.$gals->gal_name.'</option>';
    }
    $return .= '</select>';   

    echo $return;     
}

Ответы [ 3 ]

2 голосов
/ 23 августа 2010

Я предполагаю, что вы хотите обновить некоторые данные с помощью $.post, а затем получить обновленные данные с помощью get?В этом случае у вас возникает проблема, поскольку $.post и $.get являются асинхронными, что означает, что браузер не будет ждать его завершения, прежде чем продолжить работу в сценарии.

Это означает, что ваш сценарий будет вызывать $.post и $.get почти одновременно, вместо этого попробуйте поместить ваш get в обратный вызов для $.post, например:

$('#submit').click(function() {

    var nam = $('#name').val();
    var par = $("#parentCategory").val();
    var dat = $("#catDate").val();

    $.post("<?php echo site_url('admin/add_gallery'); ?>", {name: nam, parent: par, cat_date: dat}, function() {
        if (par != 'undefined')
        {
            $('#next_tab').click()
        }
        else
        {
            $("#gallery").click(),
            $("#name").val('')
        }
        $.get("http://www.example.com/admin/get_galleries", function(gals)
        { // Get the Contents of Drop Down Gallery Select
            $("#galleryChoose").html(gals);
        }); 
    });



    alert('yop');       

});
0 голосов
/ 23 августа 2010

CodeIgniter поставляется с отключенным $ _GET по умолчанию. Вы должны включить его, чтобы использовать его. Взгляните сюда: CodeIgniter, Руководство пользователя, Безопасность

0 голосов
/ 23 августа 2010

Я не парень по PHP, но исправляет ли удаление / в строке каталога (/admin/get_galleries) это? Вместо этого вы добавите admin/get_galleries, так как ваша переменная ссылки уже имеет завершающий /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...