web-dev-qa-db-ja.com

PHP変数をjavascript関数に送信

変数を生成するphpファイルがあり、その変数をメインページのonclickによって呼び出されるjavascript関数に入れたいです。これはPHPからjavascriptに送信できますか?

11
user1879926

次のことができます。

<script type='text/javascript'>
    document.body.onclick(function(){
        var myVariable = <?php echo(json_encode($myVariable)); ?>;
    };
</script>
18

JavaScriptは、PHPで解析されたファイル内で定義する必要があります。

たとえば、index.phpに配置できます

<?php
$time = time();
?>
<script>
    document.write(<?php echo $time; ?>);
</script>
5
Jason

書くだけ:

<script>
    var my_variable_name = "<?php echo $php_string; ?>";
</script>

これで、上記のコードの下の任意の時点で、my_variable_nameという名前のJavaScript変数として使用できます。

5
Hubro

私があなたを正しく理解していれば、あなたは次の行に沿って何かをすることができるはずです:

function clicked() {
    var someVariable="<?php echo $phpVariable; ?>";
}
2
username tbd

素晴らしいオプションは、jQuery/AJAXを使用することです。 これらの例を見てください そしてサーバーで試してみてください。この例では、FILE1.phpで、空の値を渡していることに注意してください。必要に応じて、次のような値を渡すことができます(usernameおよびpasswordと呼ばれるjavascript変数を想定:

_data: 'username='+username+'&password='+password,
_

FILE2.phpの例では、次のような値を取得します。

_$uname = $_POST['username'];
$pword = $_POST['password'];
_

次に、MySQLルックアップを実行し、次のように値を返します。

_echo 'You are logged in';
_

これにより、メッセージ_You are logged in_がFILE1.phpの成功関数に配信され、メッセージ文字列が「data」という変数に格納されます。したがって、成功関数のalert(data);行はそのメッセージを警告します。もちろん、テーブル構造全体など、大量のHTMLであっても、echo好きなものを使用できます。

別の良い例です レビューします。

フォームを作成し、jQueryを使用してボタンが押されたことを検出し、AJAXを介してセカンダリPHPファイルにデータを送信します。上記の例はその方法を示しています。

セカンダリPHPファイルは変数が送信された場合)を受信し、応答(送信することを選択したものは何でも)を返します。その応答はAJAX "data"として呼び出します(これらの例では)。

JQuery/AJAXコードはjavascriptであるため、2つのオプションがあります。メインのPHPドキュメント内の_<script type="text/javascript"></script>_タグ内に配置できます。または、_<?php include "my_javascript_stuff.js"; ?>_あなたのPHPドキュメント。

あなたの場合、最初に提案した例のほとんどをミラーリングして、データを送信せずにAJAX成功関数で応答を受信できるように思えます。 、成功関数内で行う必要があります。最初は少し奇妙に見えますが、動作します。

1
crashwap

PHP値をJavaScriptに渡すことができます。 PHPはサーバー側で実行されるため、値が計算され、javascriptを含むHTMLにエコーできます。 JavaScriptは、サーバー側で計算された値PHPを使用してクライアントブラウザーで実行されます。

<script type="text/javascript">
    // Do something in JavaScript
    var x = <?php echo $calculatedValue; ?>;
    // etc..
</script>
0
Ren