2012-01-26 188 views
0

我有一個joomla組件管理研討會。xmlhttp.responseText;返回整個頁面的HTML結果,而不僅僅是列表選項?

在編輯看來,我有,其他的領域,3名選擇列表中:

  1. 話題列表
  2. 級列表
  3. 獎貨幣

我試圖填充級別列表選項取決於在主題列表選項中選擇的內容。

所以在主題列表的onchange我添加了一個調用包含AJAX請求.js文件:

var xmlhttp; 

function listUpdate(str) 
{ 
if (str=="") 
{ 
    document.getElementById("jform_work_topic_level_idfk").innerHTML=""; 
    return; 
} 
xmlhttp=GetXmlHttpObject(); 
if (xmlhttp==null) 
{ 
    alert("Browser does not support HTTP Request"); 
    return; 
} 
var url = document.URL+"&tid="+str; 
xmlhttp.onreadystatechange=stateChanged; 
xmlhttp.open("GET",url,true); 
xmlhttp.send(null); 
} 

function stateChanged() 
{ 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
      document.getElementById("jform_work_topic_level_idfk").innerHTML=xmlhttp.responseText; 
} 
} 

function GetXmlHttpObject() 
{ 
if (window.XMLHttpRequest) 
{ 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    return new XMLHttpRequest(); 
} 
if (window.ActiveXObject) 
{ 
    // code for IE6, IE5 
    return new ActiveXObject("Microsoft.XMLHTTP"); 
} 
return null; 
} 

它的正常工作和級別列表選項填入取決於所想要的值在主題列表中選擇。問題在於,級別列表不僅包含該選項,還包含主題列表和獎勵貨幣的選項。

我認爲這是因爲xmlhttp.open(「GET」,url,true);正在請求生成整個表單html和xmlhttp.responseText的url;正在返回整個html頁面代碼。我該如何才能檢索級別列表的選項?

非常感謝!

回答

0

當涉及到檢索特定的AJAX數據時,您有兩種選擇。

您可以向服務器發送請求以僅獲取特定值並讓服務器端腳本將其分開。例如,您可以加載GET參數爲?stuff=a的頁面,並通知PHP或CGI腳本過濾掉無關內容(如果($_GET["stuff"] == "a"))。這可能是最快最安全的方式。

第二種選擇是在客戶端獲取請求時將其過濾出來,儘管這樣做速度較慢且風險較大。

道歉,如果我誤解了你的問題。

相關問題