1

public function isUsernameAvailable($this->input->post('username')) 行に対して、can't reassign $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 リクエストを実行した後、これをパラメーターとして送信します。

ユーザー名 テストユーザー名

応答で私はこれを得る:

PHP エラーが発生しました

重大度: 警告

メッセージ: Register::isUsernameAvailable() の引数 1 がありません

ファイル名: controllers/register.php

ライン番号: 118

PHP エラーが発生しました

重大度: 通知

メッセージ: 未定義の変数: ユーザー名

ファイル名: controllers/register.php

ライン番号: 120

{"ユーザー名":"見つかりません"}

4

1 に答える 1

6

$this上書きすることはできません。現在のオブジェクトへの参照です。上書きできると、オブジェクトが失われます。

あなたのコードには次の行があります

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

これにより、関数isUsernameAvailableの最初のパラメーターが name になります$this->input->post('username')。これ$thisにより、関数のスコープ内が上書きされます。

于 2012-06-02T16:20:19.383 に答える