2017-06-12 16 views
0

PHPを使用してMYSQLデータベースからデータを取得するWebアプリケーションを作成しています。その面で問題はありません。選択されたデータは、最終的にコーチングのためのスポーツ練習を示すSVG画像を生成するために使用される。これまでのところうまくいきます。 埋め込みSVGコードからJavascript関数へのSVG "onMouseOver"マウス呼び出しを使用して、エクササイズのコーチングポイントに関するテキスト情報を表示したいと考えています。 svgコードは、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関数内に表示されないという問題があります。 Alertテキストが表示されるので、機能は安定しています。

限り、私はそれが仕事をしてPHPの変数を渡すようにしようとしないよう
<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> 

- Iハードコード場合はJS関数のDOMの一部は、値(E1)動作します。

+0

はその出力コードですPHP関数のJavascript?関数は 'global $ ID;'を持っていますか? – Barmar

+0

'$ ID'を配列にループするコードはありますか?あなたの '$ yourArray [$ y-1]'の使用はそれを示唆しているようです。あなたは '$ ID'をJavascriptで保持すると期待していますか? – Barmar

+0

もともとはいですが、動作しなかったときは、Javascript領域で関数を分離しました。 – Charlie

答えて

0

その後にJSを変更するという変数からIDを使用して、getElementById

$ID="E".$yourArray[$y-1]['ExerciseID']; 
echo "Exercise ID is....". $ID."<br>"; 

$tablesvg=$tablesvg .sprintf('<use xlink:href="#table" id="%3$s" onMouseOver="showID(this)" fill="beige" x="%1$d" y="%2$d"/>',$tb1xcoord, $tbycoordoffset,$ID); 

を呼び出すよりも、関数の引数としての要素を渡します。

<script type="text/JavaScript"> 

    function showID(elt) 
    { 
    var test=elt.id; 
    alert("Exercise ID is:" + test); 
    } 
</script> 
+0

Wicked-worked。多くのおかげで、うまくいけば、今私は先に進むことができますテキストを表示するために何らかの形のホバーを使用すると、現在のアラートではなくアプリケーションが簡素化されます。難しい部分はすべての技術を混ぜている – Charlie

関連する問題