【问题标题】:Using javascript and XML to populate a drop-down box使用 javascript 和 XML 填充下拉框
【发布时间】:2015-01-28 10:02:56
【问题描述】:

对这一切都很陌生,所以请耐心等待并使用简单的答案!

我正在尝试动态填充一个下拉框 (theSecondBox),其中包含一个项目列表,该列表取决于在另一个下拉框 (theCriteria) 中所做的选择。

我已经能够发出一个 AJAX 请求并得到一个 XML 文档。

到目前为止,我的脚本如下所示:-

<script type="text/javascript">
var xmlHttp;

function triggerAction(){
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
criteria = document.getElementById("theCriteria").value;
xmlHttp.open("GET","MyURL?criteria=" + criteria, true);    
xmlHttp.send(null);  
}  

function handleStateChange(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
parseResults();}
}
}

这会向我返回一个如下所示的 XML 文档:-

<list>
    <string>FirstDropDownItem</string>
    <string>SecondDropDownItem</string>
    <string>ThirdDropDownItem</string>
</list>

所以,我正在尝试用这些项目填充我的第二个下拉框,使用类似 ...

function parseResults(){

var results 
var selectTag

results = xmlHttp.responseXML;
selectTag = document.getElementById("theSecondBox");

...这就是我需要一些“简单”指针的地方。

如何使用 XML 文档中返回的项目填充 secondBox?到目前为止,我尝试过的所有事情(我不会复制它以挽救我的尴尬!)只是给我空值。

为这个简单的问题道歉,但正如我所说,我无论如何都不是程序员,所以任何指向解决方案或有助于教育我的好教程的指针将不胜感激。

【问题讨论】:

  • 在我尝试帮助您之前只是一个简单的问题。有没有可能得到 json 响应?
  • 尝试改用“getElementByTagName”。
  • 是的,我相信这是可能的。我正在使用一个 grails 框架,我认为它可以呈现为 json 以及 xml。不过我从来没有玩过这个,所以如果我这样做的话,这对我来说又是一个学习日。
  • JSON 响应会更容易操作。无论哪种方式,如果您决定继续使用 XML,这里有一点帮助:w3schools.com/ajax/ajax_xmlfile.asp
  • 实际上,我只是尝试了 json 的东西,现在我的响应看起来像:-

标签: javascript ajax xml select


【解决方案1】:

w3schools 不是一个好的来源,但这次请看一下 在(IE5 的“如果”现在已经过时了): http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

坦率地说 document.getElementById("myDiv").innerHTML=xmlhttp.responseText 是你需要的。 在此之前,您可以将“list”替换为“ul”,将字符串替换为“li”。

在后端更改 xml 会更好,但如果您不能尝试 str.replace...

var new_text = text.replace(/want/g, "dont want");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2018-06-03
    • 1970-01-01
    • 2012-02-06
    相关资源
    最近更新 更多