jQuery GET不工作

时间:2010-08-23 02:49:12

标签: jquery codeigniter get

为了序言,让我说我对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(这是一个

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

我使用GET调用的URL(通常是我的测试站点的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 个答案:

答案 0 :(得分:2)

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

});

答案 1 :(得分:0)

我不是PHP人员,但是删除目录字符串中的前导//admin/get_galleries)修复它吗?您会添加admin/get_galleries,因为您的链接变量已经有/

答案 2 :(得分:0)

CodeIgniter默认禁用$ _GET。您必须启用它才能使用它。看看这里:CodeIgniter User Guide, Security