我遇到了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会话已正确设置。请帮帮我
答案 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) }
});