2012-01-26 140 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"))。这可能是最快最安全的方式。

第二种选择是在客户端获取请求时将其过滤出来,尽管这样做速度较慢且风险较大。

道歉,如果我误解了你的问题。

相关问题