jQuery GET 不工作

标签 jquery codeigniter get

作为序言,我要说我对 jQuery 是“新手”。我已经掌握了概念和大部分用法,但我对所有这些括号和函数还不是很完美。

这就是为什么我可能在这里犯了一个业余错误。我使用以下代码提交一些数据,移至页面的下一部分,然后尝试将新内容加载到下一部分的下拉菜单中:

    $('#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(这是一个

标记)永远不会填充新内容。

我使用 GET 调用的 URL(通常是我的测试站点的 URL,我出于示例目的更改了它)会生成一个包含所有最新元素的下拉列表,但使用 GET 引用它似乎不起作用。我是否必须以某种特定方式将其返回给 GET?我现在只是使用 return $variable,其中 $variable 包含所有 HTML。

任何帮助将不胜感激。为这个问题奋斗了一个漫长的夜晚。

更新:这是我通过 URL 引用的代码(它是 CodeIgniter,因此位于我的 Controller 中):

    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;     
}

最佳答案

我猜您想要做的是通过 $.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');       

});

关于jQuery GET 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3544431/

相关文章:

javascript - jQuery promise 在使用完毕后会发生什么?

php - 如何将 Codeigniter 中的welcome.php 更改为类似index.php 的内容?

php - MySQL 连接表中的未知列

http - 如何查询google自定义搜索引擎多个关键词?

php - 如何解决这个问题,尝试使用 $GET 数据调用数据库条目?

javascript - 在 jquery 中使用 on() 时将参数传递给函数

javascript - 使用 Jquery 停止 css 动画。这样做的正确方法是什么?

javascript - 使用 jQuery 按值更改选择标签边框颜色

codeigniter - 将 csv 上传到 Codeigniter

php - 根据用户选择在页面上包含不同的 mysql 数据