我正在试图找出为什么我无法为公共函数isUsernameAvailable($ this-> input-> post('username'))行重新分配$ this错误消息。我查看了我的代码,找不到为什么我不能这样做的原因。该函数的用途是将json发送到php的post jquery函数。
public function isUsernameAvailable($username)
{
if ($this->usersmodel->isUsernameAvailable($username))
{
echo '{"username":"found"}';
}
else
{
echo '{"username":"notfound"}';
}
}
的jQuery
$('#username').blur(function(){
$.post('register/isUsernameAvailable', {"username":$(this).val()}, function(data){if(data.username == "found"){alert('username already in use');}}, 'json');
});
有什么想法吗?
更新:
我试图找出这是否真的是PHP问题或jQuery问题。
执行POST请求后,它将其作为参数发送:
用户名testusername
在回复中我得到了这个:
遇到PHP错误
严重性:警告
消息:缺少Register :: isUsernameAvailable()
的参数1文件名:controllers / register.php
行号:118
遇到PHP错误
严重性:注意
消息:未定义的变量:用户名
文件名:controllers / register.php
行号:120
{ “用户名”: “NOTFOUND”}
答案 0 :(得分:6)
$this
无法覆盖,它是对您所在对象的引用。如果您可以覆盖它,则会丢失该对象。
在您的代码中,您有
行public function isUsernameAvailable($this->input->post('username'))
这会导致函数isUsernameAvailable
第一个参数为名称$this->input->post('username')
。这将导致函数范围中的$this
被覆盖。