1

我试图弄清楚为什么我会为公共函数 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

文件名:控制器/register.php

行号:118

遇到 PHP 错误

严重性:通知

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

文件名:控制器/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 回答