2012-12-05 7 views
8

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

+1

クリックごとに異なる必要があります(現在のサーバー側の時間をもたらすスクリプトなど)。その場合は、おそらく[Ajax](https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started)が必要です。 – apsillers

答えて

15

を置くことができます:

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

変数を取得するPHPファイルをどのように指定するのですか? – user1879926

+1

私はもう少しPHPを学ぶ必要があると思います。ものをエコーする方法を示す簡単なチュートリアルをご覧ください。 http://php.net/manual/en/tutorial.php –

+1

json_encodeを持っている必要があるのはなぜですか?単に$ myVariableをエコーし​​ないのはなぜですか? – TGeorge

1

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

function clicked() { 
    var someVariable="<?php echo $phpVariable; ?>"; 
} 
+1

セミコロンで終了する必要があります – mplungjan

+0

@username tbd括弧内にphpファイル全体を配置する必要がありますか?もしそうでなければ、変数がどのPHPファイルから来るのかを指定するにはどうすればいいですか? – user1879926

4

あなたのJavaScriptは、PHP-解析されたファイル内で定義しなければならないであろう。例えば

、あなたのindex.phpにあなたは、次の操作を行うことができ

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

だけ書く:

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

今ではJavaScriptとして利用可能です上記のコードの下の任意のポイントでmy_variable_nameの名前で変数を変更します。

0

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

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

大きなオプションは、jQuery/AJAXを使用することです。 Look at these examplesとあなたのサーバーで試してみてください。この例では、FILE1.phpでは空白の値を渡していることに注意してください。 FILE2.phpの例では

data: 'username='+username+'&password='+password, 

、あなたがこのようなこれらの値を取得します:あなたは、この(ジャバスクリプトをusernamepasswordと呼ばれるVARS仮定の​​ように見えるかもしれない、希望する場合は、値を渡すことができ

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

は、その後、あなたのMySQLの検索を行うため、値を返す:

echo 'You are logged in'; 

これは、suコマンドにメッセージYou are logged inを提供しますccess関数がFILE1.phpにあり、メッセージ文字列は "data"という変数に格納されます。したがって、成功関数のalert(data);行はそのメッセージを警告します。もちろん、echoでもテーブル構造全体のような、大量のHTMLでも好きなことができます。

Here is another good exampleを確認してください。

フォームを作成し、jQueryを使用してボタンを検出し、AJAX経由でセカンダリPHPファイルにデータを送信する方法があります。上の例はそれを行う方法を示しています。

セカンダリPHPファイルは、変数があればそれを受け取り、応答を返します(あなたが送信するものは何でも)。その応答はAJAX呼び出しのSuccess:セクションに "data"として表示されます(これらの例では)。

jQuery/AJAXコードはjavascriptなので、メインPHPドキュメントの<script type="text/javascript"></script>タグ内に配置するか、PHPドキュメントの最後に<?php include "my_javascript_stuff.js"; ?>という2つのオプションがあります。jQueryを使用している場合、与えられた例のようにjQueryライブラリを含めることを忘れないでください。

あなたのケースでは、私が提案した最初の例をかなりミラーリングして、データを送信せず、AJAX success関数でレスポンスを受け取ることができます。あなたがそのデータを使って行う必要があるものは、成功関数の内部で行う必要があります。最初はちょっと変わったようですが、うまくいきます。

関連する問題