【发布时间】:2022-11-14 05:54:30
【问题描述】:
我必须显示乐谱,为此我使用 Open Sheet Music Display。有用于显示工作表的 JavaScript 代码。现在我想从我的数据库中加载一个 MXML 文件。 通常这是显示它所需的代码:
<script src="../scripts/opensheetmusicdisplay.min.js"></script>
<div id="osmdCanvas"></div>
<script >
var osmd = new opensheetmusicdisplay.OpenSheetMusicDisplay('osmdCanvas');
osmd.setOptions({
backend: 'svg',
drawTitle: true,
});
osmd.load('../xml/Band_Of_Brothers.musicxml').then(function () {
osmd.render();
});
</script>
但是现在我尝试使用我的数据库项目来执行此操作,我以如下所示的方式将正常位置替换为该数据库元素。但它不再起作用了。我该如何解决?
<script src="../scripts/opensheetmusicdisplay.min.js"></script>
<div id="osmdCanvas"></div>
<script >
<?php
$query = 'SELECT `sheets_xml` FROM `imslp_sheets` WHERE 1';
$result = $conn->query($query);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$thisXmlSheet = $row['sheets_xml'];
}
}
echo "
var osmd = new opensheetmusicdisplay.OpenSheetMusicDisplay('osmdCanvas');
osmd.setOptions({
backend: 'svg',
drawTitle: true,
});
osmd.load('$thisXmlSheet').then(function () {
osmd.render();
});";
?>
</script>
【问题讨论】:
-
生成的 JavaScript 代码是什么样的?使用browser console (dev tools)(点击
F12),读取任何错误。 -
这回答了你的问题了吗? How can I combine two strings together in PHP?
-
@SebastianSimon 有 2 个错误?第一个“加载资源失败:服务器响应状态为 404(未找到)”第二个错误在
opensheetmusicdisplay.min.js中显示“未捕获(承诺中)错误:无法在 i.onreadystatechange 检索请求的 URL 404” -
$thisXmlSheet包含类似xxxxx.musicxml的内容是真的吗? (不是../xml/Band_Of_Brothers.musicxml),对吧? -
@KenLee 是的,没错。在这种情况下,它是 Band_Of_Brothers.musicxml
标签: javascript php