2

我们有几个复选框,我们想在 javascript 查询中使用它们的输出。我们有几个关于运动的问题,每个问题人们都可以选中一个复选框,以便将这些输出发送到查询。到目前为止,我们的查询如下:

<script>
    var Q = new sgvizler.Query(); 

    Q.query("SELECT ?sport WHERE { 
        ?sport o:IndividualOrTeam o:Team .
    }      

       .endpointURL("http://localhost/query")

       .endpointOutputFormat("json")                      

       .chartFunction("google.visualization.Table")      
       .draw("myElementID");                              
</script>

现在,我们想要的是我们可以在查询中使用复选框的输出,它们是变量,作为输入。这将如下所示:

Q.query("SELECT ?sport WHERE { ?sport o:IndividualOrTeam o:[CheckboxOutput1] .

我们已经使用代码来检查复选框是否被选中:

document.getElementById('team').checked;

对于所有复选框,我们做了上述。我们知道我们可以从中进行 var 查询,但不知道如何将变量放入该查询中。我希望有人能帮帮忙!

4

2 回答 2

0

那么你可以给你的复选框一个值:

var teamValue;
var team = document.getElementById('team');
if (team.checked)
{
  teamValue = team.value;
}
else
{
  teamValue = "individual";
}

console.log(teamValue)
<div>
  <input id="team" type="checkbox" value="team" checked />team
</div>
  

之后,您可以连接该值:

sport o:IndividualOrTeam o:"+teamValue+" 
于 2017-10-23T14:40:46.673 回答
0

您应该能够使用表达式插值

$("#test").click(function() {
  var Q = new sgvizler.Query();

  Q.query(`SELECT ?sport WHERE { ?sport o:IndividualOrTeam o:${document.getElementById('team').checked ? 'team' : 'individual'} }`);

  alert(Q.query());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.0/jquery.js"></script>
<script src="https://mgskjaeveland.github.io/sgvizler/v/0.6/sgvizler.js"></script>

<input type="checkbox" id="team" />

<button id="test">Try Me</button>

于 2017-10-23T14:54:48.310 回答