2013-09-28 2 views
-1

У меня есть поле ввода на моем веб-сайте. Когда пользователь начинает вводить название своей школы в этом поле ввода, то <select> ниже тег автоматически выполните следующие действия: 1.
Access моего файл JavaScript (это работает)
2. Файл JavaScript должен получить значение из <input> и передать его на PHP файл (это работает)
3. PHP файл должен получить строку, которая была отправлена ​​(это работает)
4. файл PHP должен создать 3 переменных в класс FetchSchool:
5. Первой переменной является _string который будет содержать значение переданной строки из <input> (эта переменная может быть частью проблемы)
6. вторая переменная является _output, которая будет содержать значение того, что для вывода в файл JavaScript (Я не имея никаких проблем с этой переменной)
7. третья переменная является переменной _DM, который подключается к моей DataManager класса (это тот, который чрезвычайно проблематичной)
что происходит в моей что ничто не помещено после объявления _DM переменная в функции __construct на самом деле происходит. Если я прокомментирую объявление переменной _DM с помощью //, тогда все после этой точки будет работать. Я проверил и DataManager класс может быть найденным классом FetchSchool, поэтому я не могу понять, почему эта ошибка происходит.
Вот мой код:Ошибка PHP и AJAX при получении данных

<?php 
class FetchSchool { 
    public $_string; // string that will hold the value that is passed in 
    public $_output; // output string of HTML 
    public $_DM; 
    final public function __construct($_passed_string){ 
     echo "<option>".$_passed_string."</option>"; 
     $this->_string = ($_passed_string) ? $_passed_string : ""; 
     $this->_output = ""; 
     $this->_DM  = ($_passed_string) ? new DataManager("localhost","root","root","hw_share") : NULL; 
     if ($this->_string){ 
      echo "<option>works</option>"; 
     } // end if 
     else {return "";} 
    } // end __construct 
} // end class fetchSchool 
if (@$_GET["str"]){ 
    $_fetch_school = new FetchSchool(@$_GET["str"]); 
} // end if 
?> 

В "<option>".$_passed_string."</option>" работы и автоматически отображаются независимо от конкретных типов пользователей, но "<option>works</option>" не обнаруживается, хотя он должен.

ответ

0

Тот факт, что "<option>works</option>" не является echo -ed либо потому, что $this->_string пуста или есть что-то не так с линией

$this->_DM = ($_passed_string) ? new DataManager("localhost","root","root","hw_share") : NULL; 

и остановил PHP скрипт от запуска.

Поскольку в этом случае $this->_string не выглядит пустым, я уверен, что что-то пошло не так, когда вы создавали экземпляр DataManager в этой строке.

Вам нужно будет опубликовать коды о том, как вы создаете класс DataManager, иначе мы ничего не можем с этим поделать.

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