2011-06-22 5 views
10

jQueryスクリプトの中でPHPを使用することはできますか?たとえば

$(document).ready(function(){ 
    $('.selector').click(function(){ 
     <?php 
     // php code goes here 
     ?> 
    }); 
}); 

ウィルこの原因の問題やページが遅く?これは悪い習慣ですか?これに関連して私が知るべき重要なことはありますか?

ありがとうございます!

+0

みんなありがとうを扱っているPHPスクリプトを実行し、AJAXを使用するためのより良い選択を持っています!皆さんはすごいです!今、私は分かる! – hellomello

答えて

12

clickイベントでPHPコードをバインドしようとすると、これはやり方では不可能で、クリックイベントを待たずにページが読み込まれるとすぐにPHPコードが実行されます。

PHPを使用して最終的なjavascriptまたはjqueryコードを生成しようとしている場合、これは問題ありません。

+0

ありがとう、私はこれがまっすぐだと思って、その点を見つけました。ありがとう。私はすべての答えをチェックすることができれば幸いです – hellomello

+0

私はこれを行うとエラーが発生します。もはや許されないのですか?そして、私は単にif文に基づいて行を含めるかどうかを試みています($ _SESSION ['somevar'] == 1なら) –

3

あなたが念頭に置いておく限り、ページが送信される前に、サーバーによってPHPコードが実行される。それ以外は、楽しんでください。

1

いいえ、そうではありません。 PHPページが解析された後にJSが実行されることを知っている限り、

4

PHPはサーバー上で実行され、クライアント上でjavascriptが実行されます。だからここでやっていることは、関数本体になるjavascriptを生成するためにphpを使用することです。それがあなたがしようとしていたものなら、それをすることに何も問題はありません。

もしあなたがJavaScriptからいくつかのPHPコードを呼び出すつもりだと思ったら、あなたは間違ったトラックにいます。別のページにPHPコードを入れ、結果を得るためにajaxリクエストを使用する必要があります。

6

ページを遅くすることはありません。 PHPはサーバ上で動作し、任意のPHPページのようにブラウザに送信されるテキストを出力します。それは悪い習慣ですか?私は「悪い」とは言いませんが、必ずしも素晴らしいとは言えません。 PHPは、「バックエンド」の言語とJavaScriptで

<script> 
    var stuff = <?php print $stuff; ?>; 
    var blah = "<?php print $blah; ?>"; 

    // Do things in JS with stuff and blah here, no more PHP mixed in 
</script> 
+0

Nice ... !!!!!!!!!!!!! – Ehsan

2

「フロントエンド」である:のように、私はこのような何かをする必要がある場合には、私は通常それを分割しようとする - それは厄介なコードになり言語。要するに、PHPコードをPHPを理解しているWebサーバーからロードしている限り、JSをインライン化してキャッシュ機能を失わなければならないという欠点があります(.jsファイルのPHPを解析する回避策がありますが、これを行う)。ユーザーには、javascriptとHTMLのように見えます。

  1. ユーザーリクエストページです。
  2. Apache(または同等のもの)に関する注意事項 は、PHPファイルです。次に、すべて をphpタグの間にあるphpにレンダリングします。
  3. Apacheはページをユーザーに送信します。
  4. ユーザーのブラウザでは、JavaScript が表示され、実行されます。

PHPが有効なJavaScriptを出力していることを確認してください。

3

は、あなたがクリックイベント

$(document).ready(function(){ 
    $('.selector').click(function(){ 
     $.ajax({url:"phpfile.php",type:"POST", 
data:"datastring="+value+"&datastring2="othervalue, 

,success:function(data){ 
//get the result from the php file after it's executed on server 
} 

}); 
    }); 
}); 
+0

ねえ、これはまさに私が必要なものです! – pattyd