Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
级联数据选择下拉列表使用javascript创建JSON数据_Javascript_Html_Json - Fatal编程技术网

级联数据选择下拉列表使用javascript创建JSON数据

级联数据选择下拉列表使用javascript创建JSON数据,javascript,html,json,Javascript,Html,Json,我试图使用java脚本创建级联数据表,但它无法正确打印数据。 当我从下拉列表中选择“资源”时,它将加载该资源中的所有截面名称,当我从其子对象中选择截面时,它将选择“超声波截面名称”。 同样在asset中,它填充了4次“asset 4”。它应该只打印一次。 我试过调试,但没用。有人能帮我吗 我只想在JavaScript中实现这一点 JAVASCRIPT var stateObject = '{"uri": "/assets/4afd3544-cea1-363d-ba29 e39831d893

我试图使用java脚本创建级联数据表,但它无法正确打印数据。 当我从下拉列表中选择“资源”时,它将加载该资源中的所有截面名称,当我从其子对象中选择截面时,它将选择“超声波截面名称”。 同样在asset中,它填充了4次“asset 4”。它应该只打印一次。 我试过调试,但没用。有人能帮我吗

我只想在JavaScript中实现这一点 JAVASCRIPT

var stateObject = '{"uri": "/assets/4afd3544-cea1-363d-ba29    e39831d8930d","name": "Asset 4","sections": [{"uri": "/assets/2dc11152-7b85-   35d7-8af6-c48ca4397d9f","sectionId": null, "name": "Section    1","ultrasonicSensors": null,"temperatureSensors":   null,"ultrasonicSensorPositions": [{"ultrasonicSensorPositionId":"1395","sensorPositionName":"MeasurementPosition 1","diameter": "0","rotation": "0","sequenceNumber": null,  "sectionId": "/assets/2dc11152-7b85-35d7-8af6-c48ca4397d9f"}]}]}';

  var json = JSON.parse(stateObject);

window.onload = function () {
var stateSel = document.getElementById("stateSel"),
    countySel = document.getElementById("countySel"),
    citySel = document.getElementById("citySel");

for (state in json) {
 stateSel.options[stateSel.options.length] = new Option(json.name , "");

}

stateSel.onchange = function () {
    countySel.length = 1; // remove all options bar first
    citySel.length = 1; // remove all options bar first
    if (this.selectedIndex < 1) {
      countySel.options[0].text = "Please select state first"
      citySel.options[0].text = "Please select county first"
      return; // done   
    }  
    countySel.options[0].text = "Please select county"
    var x = JSON.stringify(json.sections);

   // alert(x)

    for (var county in x) {

    countySel.options[countySel.options.length] = new Option(county, x);
    }
    if (countySel.options.length==2) {
      countySel.selectedIndex=1;
      countySel.onchange();


    }  

}

stateSel.onchange(); // reset in case page is reloaded

countySel.onchange = function () {
    citySel.length = 1; // remove all options bar first
    if (this.selectedIndex < 1) {
      citySel.options[0].text = "Please select county first"
      return; // done   
    }  
    citySel.options[0].text = "Please select city"

    var cities = stateObject[stateSel.value][this.value];
    for (var i = 0; i < cities.length; i++) {
        citySel.options[citySel.options.length] = new Option(cities[i], cities[i]);
    }
    if (citySel.options.length==2) {
      citySel.selectedIndex=1;
      citySel.onchange();
    }
}
 }
var stateObject='{“uri”:“/assets/4afd3544-cea1-363d-ba29 e39831d8930d”,“name”:“Asset 4”,“sections”:[{“uri”:“/assets/2DC1152-7b85-35d7-8af6-c48ca4397d9f”,“sectionId”:null,“name”:“Section 1”,“ultrasonicSensors”:null,“temperatureSensors”:null,“ultrasonicSensorPositions”:[{“ultrasonicSensorPositionId”:“1395”,“传感器位置名称”:“测量位置1”,“直径”:“0”,“旋转”:“0”,“序列号”:null,“节ID”:“/assets/2DC1152-7b85-35d7-8af6-c48ca4397d9f”}]}];
var json=json.parse(stateObject);
window.onload=函数(){
var stateSel=document.getElementById(“stateSel”),
countySel=document.getElementById(“countySel”),
citySel=document.getElementById(“citySel”);
for(状态为json){
stateSel.options[stateSel.options.length]=新选项(json.name,“”);
}
stateSel.onchange=函数(){
countySel.length=1;//首先删除所有选项栏
citySel.length=1;//首先删除所有选项栏
如果(此.selectedIndex<1){
countySel.options[0]。text=“请先选择状态”
citySel.options[0]。text=“请先选择县”
return;//完成
}  
countySel.options[0]。text=“请选择县”
var x=JSON.stringify(JSON.sections);
//警报(x)
用于(x中的var县){
countySel.options[countySel.options.length]=新选项(县,x);
}
if(countySel.options.length==2){
countySel.selectedIndex=1;
countySel.onchange();
}  
}
stateSel.onchange();//重新加载页面时重置
countySel.onchange=函数(){
citySel.length=1;//首先删除所有选项栏
如果(此.selectedIndex<1){
citySel.options[0]。text=“请先选择县”
return;//完成
}  
citySel.options[0]。text=“请选择城市”
var cities=stateObject[stateSel.value][this.value];
对于(变量i=0;i

这是

您的问题标题是数据表,但您的小提琴正在创建选择元素,这是错误的标题还是小提琴?@aakanksand您的JSON看起来只有一个部分,资产4来自顶部对象,在小提琴中尝试您正在将第一个选择的值设置为
”“
。这就是为什么你会出错。稍后,您将尝试访问
stateObject
的成员,它仍然是一个字符串,而
json
是已解析的对象。在这里发布之前,您需要进行更基本的调试。你们有并没有检查过浏览器的控制台?很抱歉,我错给了tital关于表的内容。我尝试过调试,但在第二个下拉列表中并没有给出任何节名值。