2012-06-02 73 views
1

我想弄清楚为什么我得到一个不能重新分配$这个公共函数的错误消息isUsernameAvailable($ this-> input-> post('username'))行。我查看了我的代码,找不到为什么我不能这样做的原因。该函数用于jQuery发送到PHP后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'); 
}); 

任何想法?

UPDATE:

我“米试图找出如果这确实是一个PHP的问题或jQuery的问题

后它的POST请求发送此作为一个参数:

用户名testusername

在响应我得到这个:

甲PHP错误遇到

严重性:警告

消息:缺少参数1寄存器:: isUsernameAvailable()

文件名:控制器/ register.php

行号:118

PHP遇到错误

严重性:注意

消息:未定义变量:用户名

文件名:控制器/ register.php

行号:120

{ “用户名”: “NOTFOUND”}

回答

6

$this不能被覆盖,它是对你所在对象的引用。如果你可以覆盖它,你会失去对象。

在你的代码有行

public function isUsernameAvailable($this->input->post('username')) 

这会导致功能isUsernameAvailable第一个参数被命名$this->input->post('username')。这将导致在功能范围内的$this将被覆盖。

+1

我仍然困惑与我的功能有什么关系。 –

+0

如果看到您正在使用$,请阅读您的实际代码(实际上只是发布必要的代码),这是函数参数的名称。这是行不通的。 – clentfort

+0

我该怎么做才能纠正这个问题? –