我正在尝试与SGvizler建立一个表。但是,当我尝试创建表时,我收到以下错误:
3.084s: loadGVizScript: loading packages: sgvizler.js:952
3.087s: loadGVizScript: loading packages: table sgvizler.js:952
4.742s: Error: A 'parsererror' occurred in Query.saveQueryResults() sgvizler.js:952
5.049s: loadGVizScript: packages LOADED: sgvizler.js:952
5.052s: loadGVizScript: packages LOADED: table
我使用的代码如下:
<script>
var boatValue;
$("#res").click(function() {
var boat = document.getElementById('boat');
if (boat.checked)
{
boatValue = boat.value;
}
else
{
boatValue = "speedboat";
}
console.log(boatValue)
$("#query").click(function()
{var Q = new sgvizler.Query();
Q.query(`SELECT ?boat WHERE { ?boat s:BoatorNoat s:`+boatValue+` .}`)
.endpointURL("http://localhost/query/")
.endpointOutputFormat("json")
.chartFunction("google.visualization.Table")
.draw("myElementID");
</script>
我重复了var boatValue几次,所以也许浏览器的内存/使用存在问题,但不幸的是我对此并不熟悉。希望有人可以告诉我如何解决这个问题。
干杯!
答案 0 :(得分:0)
根据我可以找到的文档,您的语法在这里看起来不正确:
Q.query(`SELECT ?boat WHERE { ?boat s:BoatorNoat s:`+boatValue+` .}`)
我认为你需要使用这样的双引号:
Q.query("SELECT ?boat WHERE { ?boat s:BoatorNoat s:" + boatValue + ".}")
在下面添加了一些我认为有用的代码。不确定您拥有的所有点击处理程序是什么,因为没有发布HTML:
$("#query").click(function() {
var boat = document.getElementById('boat');
if (boat.checked) {
boatValue = boat.value;
} else {
boatValue = "speedboat";
}
var query = "SELECT ?boat WHERE { ?boat s:BoatorNoat s:" +
boatValue + ".}";
console.log(query);
/*Plug into your code below*/
/*var Q = new sgvizler.Query();
Q.query(query)
.endpointURL("http://localhost/query/")
.endpointOutputFormat("json")
.chartFunction("google.visualization.Table")
.draw("myElementID");*/
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="boat" value="someOtherKindOfBoat">
<input type="button" id="query" value="See Query">
&#13;
答案 1 :(得分:0)
未定义前缀“s:”。这是SPARQL中的解析错误。