我的网站上有一个输入字段。当用户开始在此输入字段中输入其学校名称时,下面的<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>"
不显示,但应该显示。
答案 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
的代码,否则我们无能为力。