接收数据时PHP和AJAX错误

时间:2013-09-28 03:47:51

标签: javascript php ajax function class

我的网站上有一个输入字段。当用户开始在此输入字段中输入其学校名称时,下面的<select>标记应自动执行以下操作:
 1.访问我的JavaScript文件(此作品
 2. JavaScript文件应检索<input>的值并将其传递到PHP文件(此工作
 3. PHP文件应该接收已发送的字符串( this works
 4. PHP文件应在类FetchSchool中创建3个变量:
 5.第一个变量是_string,它将保存<input>中传递的字符串的值(此变量可能是问题的一部分
6.第二个变量是_output,它将保存输出到JavaScript文件的值(我对此变量没有任何问题
7.第三个变量是_DM变量,它连接到我的DataManager类(这是非常有问题的
在我的代码中发生的事情是,_DM函数中__construct变量的声明实际发生后没有放置任何内容。如果我使用_DM//变量的声明进行评论,那么此后的所有内容都可以正常工作。我已经检查过了DataManager类可以找到FetchSchool ,所以我无法弄清楚为什么会出现这个错误。
这是我的代码:

<?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>"不显示,但应该显示。

1 个答案:

答案 0 :(得分:0)

"<option>works</option>"未被echo编辑的事实是因为$this->_string为空或行有问题

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

这阻止了php脚本的运行。

由于在这种情况下$this->_string似乎不是空的,我很确定在该行创建DataManager实例时出现了问题。

你必须发布你如何创建课程DataManager的代码,否则我们无能为力。