2013-09-28 80 views
-1

我在我的網站上有一個輸入字段。當用戶開始在此輸入字段中鍵入自己學校的名字,下面的<select>標籤會自動執行以下操作:
1.訪問我的JavaScript文件(這個工程
2. JavaScript文件應檢索值在<input>並把它傳遞到PHP文件(這個工程
3. PHP文件應該會收到已發送的字符串(這個工程
4. PHP文件應該創建3箇中的變量FetchSchool
5.第一個變量是_string其將從<input>保持所傳遞的字符串的值(此變量可能是問題的一部分)
6.第二變量是_output將舉行的是什麼,並輸出到JavaScript文件的值( 我不是有這個變量
7.第三變量是_DM變量,它連接到我的DataManager任何問題(這是一個是非常問題
中會發生什麼我代碼是在聲明後沒有放置任何東西變量中實際發生的__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的代碼,否則我們無能爲力。