2017-10-21 195 views
1

我是一个新手,一直在研究nodejs中的个人项目,这一直让我头疼。希望我能得到一些帮助。通过多个选择对象的多个选项循环并基于SQL查询结果选择选项

这是情况:我有5个选择元素与我循环相同的类名。然后,我遍历每个select元素的选项,并且这可以工作。我遇到问题的地方是我想从SQL查询中获取值(连接已创建)。如何循环从SQL查询获得的表中的值,并在每个适当的select元素中选择多个索引?

我希望这是有道理的。

以下是我已经把:

//execute queries here 
    var id = document.getElementById('idtext').value 

    connection.query('SELECT * FROM doneon WHERE SampID LIKE ?', id, (err, rows, fields) => { 
    if(err){ 
     return console.log('An error ocurred with the query', err) 
    } 
    var seleobje = document.getElementsByClassName('sele') 
    for (var i=0; i<seleobje.length; i++){ 
     for (var j=0; j<seleobje.item(i).length; j++){ 
     for (var k=0; k<rows.length; k++){ 
      if (seleobje.item(i).options[j].value == rows[0].TestID){ 
      seleobje.item(i).options.selectedIndex = True 
      } 
     } 
     } 
    } 

我猜我可能有太多的循环,但我不确定是怎么回事做到这一点。感谢您提供的所有帮助。

+0

您对优化循环(回路次数过多)的问题或者您有执行代码时出错,还是不会导致预期结果? – Jankapunkt

+0

顺便说一下,'rows [0] .TestID'将始终引用第一行的TestID。这是打算?否则它应该是'rows [k] .TestID' – Jankapunkt

+0

对不起。我正在处理代码,并忘记在复制粘贴前纠正行[0]部分。 – robikube

回答

0

再次阅读您的问题后,我想我有一个解决方案给你。

你基本上需要在一个循环中迭代你的行,然后得到每个行id所有相关的选项(具有相同的值)。

你可以做到这一点很容易使用jQuery:

for (var k=0; k<rows.length; k++){ 
    var rowId = rows[k].TestID; 
    $("[value='"+rowId+"']").each(function(element){ 
     this.selected = "selected"; 
    }); 
} 

该代码使所有条目<option>匹配selected您row`s的ID。完整的代码如下:

//execute queries here 
var id = document.getElementById('idtext').value 

connection.query('SELECT * FROM doneon WHERE SampID LIKE ?', id, (err, rows, fields) => { 
    if (err){ 
    return console.log('An error ocurred with the query', err) 
    } 

    for (var k=0; k<rows.length; k++){ 
    var rowId = rows[k].TestID; 
    $("[value='"+rowId+"']").each(function(element){ 
     this.selected = "selected"; 
    }); 
    } 
} 

如果已经创建了一个样本小提琴,使用该代码的一些示例数据:https://jsfiddle.net/qgadhsLh/

+0

谢谢你。尽管如此,我认为我的问题存在。我得到这个错误:未捕获的错误:语法错误,无法识别的表达式:[value = Activated Partial Thromboplastin Time]。任何想法为什么。 – robikube

+0

我以为我能用javascript滑过,但它看起来像jquery非常方便。我需要了解它是如何工作的。更浓缩。 – robikube

+0

在我的情况下,这些选项是通过从aonther表中提取信息来动态创建的,但不是通过HTML手动实现的。这可能是导致此错误的因素吗? – robikube