2012-06-02 5 views
1

Я пытаюсь понять, почему я получаю сообщение об ошибке, не могу передать $ this сообщение об ошибке для публичной функции isUsernameAvailable ($ this-> input-> post ('username')). Я просмотрел свой код и не могу найти причину, почему я не могу этого сделать. Для этой функции используется функция post jquery с json, отправленная на php.

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

Line Number: 118

Ошибка в PHP

Серьезность: Обратите внимание

Сообщение: Undefined переменной: имя пользователя

Имя файла: Контроллеры/register.php

Line Number: 120

{ "имя пользователя": "NotFound"}

ответ

6

$this не может быть перезаписан, это ссылка на объект, в котором вы находитесь. Если вы можете перезаписать его, вы потеряете объект.

В коде у вас есть линия

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

это вызовет функцию isUsernameAvailable первого параметра будет именем $this->input->post('username'). Это приведет к тому, что $this в объеме функции будет перезаписан.

+1

Я все еще смущен тем, что связано с моей функцией. –

+0

После прочтения вашего фактического кода (честно говоря, только почтовый код, который необходим), если видел, что вы используете $, это имя параметра функции. Это не сработает. – clentfort

+0

Что мне делать, чтобы исправить это? –

Смежные вопросы