<html>
<?php
$num = 1;
echo $num;
?>
<input type="button"
name="lol"
value="Click to increment"
onclick="Inc()" />
<br>
<script>
function Inc()
{
<?php
$num = 2;
echo $num;
?>
}
</script>
</html>
これは私がこれまでのところ持っているものですが、動作していません、私はajaxまたは何かを使用する必要があると思いますが、私は何をすべきか分かりません。
ありがとう
JavaScriptを使用してPHPコードを実行することはできません。ユーザーがページを受信すると、サーバーはすべてのPHPコードを評価して実行し、それを取り出します。 。たとえば、これは動作します:
alert( <?php echo "\"Hello\""; ?> );
サーバーがこれを評価するため:
alert("Hello");
ただし、PHPで操作を実行することはできません。
この:
function Inc()
{
<?php
$num = 2;
echo $num;
?>
}
これに対して単純に評価されます:
function Inc()
{
2
}
PHPスクリプトを呼び出さない場合は、一連のパラメーターから値を返す別のページを呼び出す必要があります。
たとえば、これは機能します:
script.php
$num = $_POST["num"];
echo $num * 2;
Javascript(jQuery)(別のページ):
$.post('script.php', { num: 5 }, function(result) {
alert(result);
});
これにより、10がアラートされるはずです。
がんばろう!
編集:jQueryでは、ページ上の数字をインクリメントするだけで、次のように簡単に実行できます。 http://jsfiddle.net/puVPc/
サーバーコードとクライアントコードを混同していると思います。
JavaScriptは、サーバー(Webページなど)からデータを受信した後、クライアント上で実行されます。
PHPは、データを送信する前にサーバーで実行されます。
したがって、phpを使用してJavaScriptを操作するには2つの方法があります。
上記のように、phpでHTMLを生成するのと同じ方法で、phpでjavascriptを生成できます。
または、AJAX JavaScriptからのリクエストを使用してサーバーと対話できます。サーバーはデータで応答でき、JavaScriptはそれを受信して何かを実行できます。
基本に戻って、サーバーとクライアントの関係でHTTPがどのように機能するかを調べることをお勧めします。次に、サーバー側言語とクライアント側言語の概念を学習します。
次に、ajaxを使用したチュートリアルを行うと、概念の取得が開始されます。
幸運、グーグルはあなたの友達です。
単純に、JavaScript変数をエコーする必要があるため、質問が間違っているように思われました。
<?php
$num = 1;
echo $num;
echo "<input type='button' value='Click' onclick='readmore()' />";
echo "<script> function readmore() { document.write('";
$num = 2;
echo $num;
echo "'); } </script>";
?>
pHPでスクリプトを使用します。
<?php
$num = 1;
echo $num;
echo '<input type="button"
name="lol"
value="Click to increment"
onclick="Inc()" />
<br>
<script>
function Inc()
{';
$num = 2;
echo $num;
echo '}
</script>';
?>
上記のコードで
php値をjavascript変数に割り当てます。
<html>
<?php
$num = 1;
echo $num;
?>
<input type = "button" name = "lol" value = "Click to increment" onclick = "Inc()">
<br>
<script>
var numeric = <?php echo $num; ?>"; //assigns value of the $num to javascript var numeric
function Inc()
{
numeric = eVal(numeric) + 1;
alert("Increamented value: "+numeric);
}
</script>
</html>
PHPとJavsacriptを組み合わせたものの1つは、javascript値をPHP値に割り当てられないことです。あなたはPHP javascript変数の値。
PHPをクライアント側のjavascriptで実行する方法があります(ここではサーバー側のjsについては説明しません)。これが非常に良いアイデアかどうかはわかりませんが、できます。一部の人々が指摘したように、PHPはサーバーで評価され、静的なものとしてブラウザに返され、サーバーから追加されたデータでjavascriptが実行されることに留意する必要があります。
サーバーにjsファイルをphpファイルとして評価するように指示する必要があります。Apacheサーバーを実行している場合は、次のようなhtaccessファイルでこれを行うことができます。
<FilesMatch "\.js$">
SetHandler application/x-httpd-php
Header set Content-type "application/javascript"
</FilesMatch>
詳細はこちら:
http://css-tricks.com/snippets/htaccess/use-php-inside-javascript/
編集:httpページのリクエストで、このトリックにより、js拡張子を持つファイルがphpコンパイラによって解析されます。 jsファイル内のすべてのphpパーツが実行され、サーバーデータが追加されたjsファイルがブラウザに渡されます。
ただし、OPはhtml形式のファイル(おそらくphp拡張)を使用し、jsファイルは使用しないため、この特定のケースでは、私の提案は必要ありません。
推奨されるjsの解決策がその方法です。変数をサーバーに保存する必要がある場合は、ajaxを使用して変数を送信します。
これを試してみてください。
<html>
<?php $num = 1; ?>
<div id="Count"><?php echo $num; ?></div>
<input type = "button" name = "lol" value = "Click to increment" onclick = "Inc()">
<br>
<script>
function Inc() {
i = parseInt(document.getElementById('Count').innerHTML);
document.getElementById('Count').innerHTML = i+1;
}
</script>
</html>
いくつかのコメントにもかかわらず、場合によってはJavascriptでPHP関数にアクセスする必要があります(例:AJAXケース)。
これらの場合、mwsXライブラリを使用して、JavaScriptでPHP関数を使用できます。
mwsXライブラリ: https://github.com/loureirorg/mwsx