0

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

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

代码点火器控制器

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

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

4

1 回答 1

3

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

可能你真正想要的是

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) }           
    });
于 2012-06-22T02:47:40.677 回答