jQuery ajax成功无法在codeigniter中工作

时间:2012-06-22 02:39:04

标签: jquery ajax codeigniter

我遇到了ajax的问题​​。诀窍是,当用户点击顶部超链接时,它将通过onclick = getChildMenuLink(str)发送链接ID。然后从getChildMenuLink(str)函数,它将通过ajax将str发送到控制器(设置会话)。这是代码。

html代码

<a href="http://localhost/ejournal/index.php/sysconfig" onclick="getChildMenuLink(1)">Administrator</a>

<a href="http://localhost/ejournal/index.php/welcome" onclick="getChildMenuLink(22)">Home</a>

jquery ajax

function getChildMenuLink(str) {
        'use strict';


        $.ajax({
            type: 'POST',
            url: "http://localhost/ejournal/index.php/sysconfig/getLink/" + str,
            success: function () {} // End of success function of ajax form           
        });  // End of ajax call

        //alert(document.URL);    
    }

codeigniter控制器

function getLink($id='')
{
    $this->session->unset_userdata('parentLink'); 
    $this->session->set_userdata('parentLink',$id);
}

如果我取消对该脚本的alert()函数的注释,它就可以了。 PHP会话已正确设置。请帮帮我

1 个答案:

答案 0 :(得分:3)

一个问题是,在您的ajax通话中,您有success: loadUrl()。这可能不是你的意思; success后面的值是一个函数,但loadUrl()不是函数,它是对函数的调用。 (我说可能不是你想要的,因为唯一可能的情况是loadUrl是一个返回函数的函数。)

可能你真正想要的是

success: loadUrl

(没有括号)或者,或许更明确地说,

success: function() { loadUrl(); }

编辑添加:

好的,显然那不是它。接下来要尝试:除了你的成功回调之外,添加一个错误回调,这样我们就可以看出是否发生了错误:

    $.ajax({
        type: 'POST',
        url: "http://localhost/ejournal/index.php/sysconfig/getLink/" + str,
        success: function () {alert("success!")},
        error: function(jqXHR, textStatus, errorThrown) { alert(textStatus + " " + errorThrown) }           
    });