За последние 24 часа нас посетили 115422 программиста и 6465 роботов. Сейчас ищут 1476 программистов ...

Fatal error: Call to a member function SetEmptyAnswerEnable()

Тема в разделе "PHP для новичков", создана пользователем sergeyilyin, 14 апр 2018.

Метки:
  1. sergeyilyin

    sergeyilyin Новичок

    С нами с:
    14 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Ребята,прошу помочь.Сделали программу-система тестирования на заказ.Тестирую на OpenServer.Всё работает кроме добавления,изменения и удаления лекций.Программист говорит,что проблема в OpenServer.При выключенных ошибках PHP страница не открывается,а если включить,то пишет ошибку:

    Fatal error
    : Call to a member function SetEmptyAnswerEnable() on null in C:\OSPanel\domains\test_system\web\forms\TLectureInsertForm.php on line 50

    Прошу помочь разобраться.


    PHP:
    1. <?php
    2.     //
    3.     class TLectureInsertForm extends TInsertForm
    4.     {
    5.         //  
    6.         public $etNumber = NULL;
    7.         public $etName = NULL;  
    8.         public $etQuestionary = NULL;
    9.        
    10.         function Initialization ($Self)
    11.         {
    12.             //                  
    13.             $this->SetCaption ('Добавить лекцию');
    14.             $this->GetGrid ()->SetHtmlWidth ('60%');
    15.             $this->GetGrid ()->SetHtmlAlign (haCenter);          
    16.            
    17.             $Obj = new THtmlInputText ();  
    18.             $Obj->SetName ($this->GetName() . 'Number');
    19.             $Obj->SetMethod ($this->GetMethod ());
    20.             $Obj->SetCaption ('Номер лекции');
    21.             $Obj->SetHtmlSize ('30');
    22.             $this->AddObject ($Obj);
    23.             $this->etNumber = $Obj;
    24.            
    25.             $Obj = new THtmlInputText ();  
    26.             $Obj->SetName ($this->GetName() . 'Name');
    27.             $Obj->SetMethod ($this->GetMethod ());
    28.             $Obj->SetCaption ('Название');
    29.             $Obj->SetHtmlSize ('30');          
    30.             $this->AddObject ($Obj);
    31.             $this->etName = $Obj;          
    32.             /*
    33.             $Obj = new THtmlInputComboBox ();  
    34.             $Obj->SetName ($this->GetName() . 'Questionary');
    35.             $Obj->SetMethod ($this->GetMethod ());
    36.             $Obj->SetCaption ('Тестирование');          
    37.             $this->AddObject ($Obj);
    38.             $this->cbQuestionary = $Obj;
    39.             */
    40.         }  
    41.        
    42.         function InitializationData ($Self)
    43.         {          
    44.            
    45.             $this->DataSet = $this->GetController()->GetData ()->GetLecture ();              
    46.            
    47.             $dsQuestionary = $this->GetController()->GetData ()->GetQuestionary ();          
    48.             $dsQuestionary->SetFilter ('IsAccessible = 1');
    49.             $dsQuestionary->Open ();          
    50.             $this->cbQuestionary->SetEmptyAnswerEnable (true);
    51.             $this->cbQuestionary->GetList ()->Add ('0', 'Не выбрано');
    52.             $this->cbQuestionary->GetList ()->LoadFromDataSet ($dsQuestionary, 'ID_Questionary', 'Name');
    53.             $dsQuestionary->Close ();          
    54.            
    55.             $this->DataSource = new TDataSource ();
    56.             $this->DataSource->SetDataSet ($this->DataSet);          
    57.             //$this->DataSource->Add ('ID_Questionary', $this->cbQuestionary);  
    58.             $this->DataSource->Add ('Name', $this->etName);  
    59.             $this->DataSource->Add ('Number', $this->etNumber);              
    60.         }
    61.        
    62.         function OnBeforeOperation ($Sender)
    63.         {
    64.             //          
    65.             $this->DataSet->GetFieldByName ('ID_Subject')->SetValue ($this->GetController()->GetSubjectID ());
    66.         }
    67.     }
    68. ?>
     

    Вложения:

  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    ошибку переведи для начала
     
  3. sergeyilyin

    sergeyilyin Новичок

    С нами с:
    14 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Перевёл.Получается,не запускается функция.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    что такое null знаешь?
     
  5. sergeyilyin

    sergeyilyin Новичок

    С нами с:
    14 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Ничего,ноль.
     
  6. sergeyilyin

    sergeyilyin Новичок

    С нами с:
    14 апр 2018
    Сообщения:
    7
    Симпатии:
    0
    Получается,что функция ничего не делает?Нет данных?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    нет. метод объекта можно вызвать из объекта если есть объект, а у тебя в переменной пустота. видимо выше что-то обломилось и не сработало. надо смотреть выше по коду, что там не так.