我编写了一个函数,通过ajax调用返回JSON格式. JSON是
{
"communication": [{
"communication_name": "None",
"communication_id": "1"
}],
"hardware": [{
"hardware_name": "XXXXXXXX",
"hardware_id": "6"
}],
"Sofware": [{
"software_name": "XXXXXX",
"software_id": "3"
}, {
"software_name": "XXXXXXXXXXXXX",
"software_id": "4"
}]
}
function getModelData(model_id, model_name){
var xmlHttp = createXmlHttpRequestObject();
try {
xmlHttp.open("GET", "ajaxmodel_new.PHP?model_id="+model_id,true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status==200){
var myJSONObject = JSON.parse(xmlHttp.responseText)
//alert(myJSONObject.communication[0].communication_name)
}
}
xmlHttp.send(null);
} catch (e){
alert("Can't connect to server:\n" + e.toString());
}
}
它得到了正确的回应.还有另一个功能是获取所选下拉列表中的选定值:
<div id="selected_options">
<select onchange="test()" id="selected_opt">
<option value="0" selected>-Select-</option>
<option value="1">Communication</option>
</select></div>
function test() {
var get_id = document.getElementById('selected_opt');
var result = get_id.options[get_id.selectedindex].value;
alert(result);
}
目的
我需要在test()函数中使用JSON响应,即myJSONObject.我怎样才能使用在test()函数中的getModelData()ajax函数中获得的var myJSONObject?
解决方法:
我在解析JSON对象时有不同的方法.
从PHP方面我创建了对象并将其存储在变量中,例如$JSONvar.现在我回应变量.
然后在客户端这就是我拦截对象的方式.
var JsonObject = {};
var http = new XMLHttpRequest();
http.open("GET", url, true); //url is the url echoing the jsonString
http.onreadystatechange = function () {
if (http.readyState == 4 && http.status == 200) {
var responseTxt = http.responseText;
myJSONObject = eval('(' + responseTxt + ')');
test(myJSONObject);
}
}
http.send(null);
您的测试函数应该能够像这样访问对象,
function test(myJSONObject) {
var object = myJSONObject;
alert(object);
var get_id = document.getElementById('selected_opt');
var result = get_id.options[get_id.selectedindex].value;
alert(result);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。