2012-06-02 89 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

我該怎麼做才能糾正這個問題? –