我必須顯示樂譜,為此我使用 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>
uj5u.com熱心網友回復:
我認為這是路徑問題。
因此,請改用以下內容進行更改:
<?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'];
}
}
?>
<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/<?php echo $thisXmlSheet; ?>').then(function () {
osmd.render();
});
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/532798.html
上一篇:函式呼叫時總是回傳null
下一篇:從字串轉換為陣列并在php中顯示
