-3

重複の可能性:
PHP 変数を Javascript に渡すには?

パラメータを受け入れるように、この関数を何らかの方法で作成する必要があります。

index.html

function dataOut(name2) {
    var names = name2.value;
    document.getElementById("output2").innerHTML = names;
    //even document.getElementById("output2").innerHTML= "blablabla"; 
    //just to show that it works
}

そして、関数はから呼び出されます:

dbase.php

...
echo "<td><a href='javascript:dataOut(this.value)'>" . $row['FirstName'] . "</a></td>";
...

テーブルの表示に問題はありません。リンクは、データベースからの文字列であるそれぞれの「$row['FirstName']」で表示されます。非パラメータ関数を使用しようとしました:

function dataOut(){}
echo "<td><a href='javascript:dataOut()'>" . $row['FirstName'] . "</a></td>";

これらは正常に動作します。

パラメータを渡そうとしても、関数は何もしません。関数のコメントセクションのように、ランダムな文字列を印刷したいだけでも構いません。そのテーブル内に作成されたリンクにマウスを合わせると、次のように表示されます。

javascript:dataOut(firstname)
//where first name is the value of the $row['FirstName']

私が試した代替案:

echo "<td><a href='javascript:dataOut(this.value)'>" . $row['FirstName'] . "</a></td>";
echo "<td><a href='javascript:dataOut($row['FirstName'])'>" . $row['FirstName'] . "</a></td>";
echo "<td><a href='javascript:dataOut('" . $row['FirstName'] .'")'>" . $row['FirstName'] . "</a></td>"; //this give me undefined variable error
echo "<td><a href='javascript:dataOut(". $row['FirstName']. ")'>" . $row['FirstName'] . "</a></td>"; // this no error

どんな助けでも大歓迎です。<a onclick=dataOut ....>さらに、どちらも機能しないことも試しました。

4

1 に答える 1

2

引用符とプレーンな文字列を連結して JavaScript 文字列を作成しようとしないでください。json_encode()有効な JavaScript 式を出力することが保証されている代わりに使用します。

echo "<td><a href='javascript:dataOut(".json_encode($row['FirstName']).")'>" . $row['FirstName'] . "</a></td>";

余談ですが、URLを使用javascript:することは一般的にはお勧めできません。onclick="dataOut(...); return false;"代わりに、便利なhref 値を使用するか、#JavaScript を使用していないユーザー向けの適切な URL が存在しない場合に使用することをお勧めします。もちろん、インライン イベントを使用してデータをdata-属性に格納する代わりに、イベントを適切に登録する方が良いでしょうが、これはここではさらに話題から外れます。

于 2012-06-09T00:12:33.087 に答える