2016-10-29 12 views
1

私はあなたに基本的な質問があります。javascriptでPHPスクリプトを扱う

<script> 
$('#mapveto1').click(function() { 
    $('#mapveto1').addClass('banned'); 
    $('#map1').text('cobblestone has been banned'); 
    <? $remaining = $remaining -1; ?> 
    $('#banstatus').html('<span class="glyphicon glyphicon-repeat glyphicon-repeat-animate"></span> Maps are being banned <? echo $remaining; ?>'); 

}); 
</script> 

すべてのスクリプトで、要素のIDが変更されています。ご覧のとおり、いくつかのPHP変数があります。

要素をクリックしてこのスクリプトを実行しなくても、これらのphp行は常に実行されます。 jsスクリプトが実行されている場合にのみ実行されるPHPスクリプトを作成するにはどうすればよいですか?

+4

PHPは長いPHPとJavaScriptを組み合わせて使用​​しないでくださいページ – charlietfl

+0

で実行するJavaScript前に、サーバー上で実行されます。 – Jonast92

答えて

-1

更新:道の下のこの例では、サンプルのように変数を渡しますが、最終的にはこの方法を使ってJavaScriptにそれを渡す前に、どのような$remaining可変出力についての土器であることを。 要求の魔法使いとの仕事をする別の方法& GETデータ。

あなたがJavaScriptのグローバル変数にPHP変数を渡す必要がある場合は

var js_variable = <?php echo $php_variable; ?>;//copy from php to js 

は、あなたのクリックイベントでjs_variable++またはjs_variable--を使用するか、どこを使用するようにあなたが行うことができます。

だからあなたの例では

<script> 
var remaining = <? echo $remaining; ?> 
$('#mapveto1').click(function() { 
    $('#mapveto1').addClass('banned'); 
    $('#map1').text('cobblestone has been banned'); 
    remaining--; 
    //or remaining -= 1; 
    //or remaining = remaining -1;  
$('#banstatus').html('<span class="glyphicon glyphicon-repeat glyphicon-repeat-animate"></span> Maps are being banned '+ remaining); 

}); 
</script> 
+1

これはそのようなことをコード化するための恐ろしい方法です。サーバー上でPHPを実行し、これがどのように行われているかを再考するか、少なくともajaxの呼び出しによって情報を取得してください。 javascriptとPHPを直接混ぜることは、恐ろしいセキュリティ問題や起こることを待っているパースエラーへの最初の踏み台にすぎません。 – junkfoodjunkie

+1

@junkfoodjunkieそうである必要はありません。確かに、このやり方は悪夢の夢ですが、PHPでJavaScriptを生成することは全く可能であり、場合によっては役に立つこともあります。 – Brad

+1

@MamdouhFreelancer少なくともjson_encode()を使用して、JavaScriptで使用するためにそのデータを安全にします。ただし、HTMLのコンテキストでもJavaScriptを使用しているので、これは完全に保存されません。 – Brad

関連する問題