我在寫一個web應用程序,它使用php從MYSQL數據庫中提取數據。那邊沒問題。所選數據用於最終創建顯示體育鍛煉的SVG圖像以進行輔導。到目前爲止效果很好。 現在我希望能夠使用SVG「onMouseOver」鼠標從嵌入式svg代碼調用Javascript函數來顯示關於練習的輔導點的文本信息。 svg代碼嵌入在php sprintf函數中。將嵌入SVG的PHP變量傳遞給Javascript函數
$ID="E".$yourArray[$y-1]['ExerciseID'];
echo "Exercise ID is....". $ID."<br>";
$tablesvg=$tablesvg .sprintf('<use xlink:href="#table" id="%3$s" onMouseOver="showID()" fill="beige" x="%1$d" y="%2$d"/>',$tb1xcoord, $tbycoordoffset,$ID);
問題是沒有數據從php變量顯示在下面顯示的javascript函數中。警報文本顯示時功能穩定。
<script type="text/JavaScript">
function showID()
{
var jsvar = '<?php echo $ID;?>';
var test=document.getElementById(jsvar).getAttributeNS(null,"fill");
alert("Exercise ID is:" + test);
}
</script>
只要我不嘗試通過PHP變量,它的工作 - 在JS功能的DOM部分作品,如果我硬編碼值(E1)。
是對代碼輸出PHP函數中的Javascript?函數是否具有'全局$ ID;'? – Barmar
設置'$ ID'的代碼是否在數組中循環?你使用'$ yourArray [$ y-1]'似乎暗示了它。您期望'$ ID'在Javascript中保留哪個值? – Barmar
最初是的,但是當它不起作用時,我在Javascript區域中隔離了函數。 – Charlie