2017-02-28 11 views
1

PHP変数をJSなどに入れて同じファイルに置く必要があるコードがあります。PHP変数へのjavascript変数の取得

PHPからJSまでは問題ありませんが、JSからPHPへは少し難しいです。

多分お手伝いできます。

<?php 
if($freischaltung==1){ 
?> 
<tr><th><a type="button" name="msg" href="Nachrichten.php?ID=<?php echo $id; ?>">Nachricht senden</a></th></tr> 
<tr><th> 
<?php 
    } else { 
?> 
<button onclick="freischalten()">Freischalten</button> 
<p id="FreischaltungAusgabe"></p> 
<?php 
    echo "<script> 
    var krone =".$kronen."; 
    </script>"; 
?>   
<script> 
    function freischalten() { 
    var x; 
    if (confirm("Das Freischalten kostet dich 2 Kronen!") == true) { 
     krone = krone -2; 
     if(krone<2){ 
      x = "Du hast zu wenige Kronen um eine Freischaltung durchzuführen!"; 
     document.getElementById("FreischaltungAusgabe").innerHTML = x; 
     } else { 
     x = "Erfolgreich freigeschaltet! Restliche Kronen = "+krone; 
     $freischalten = 1; // This should be a PHP Variable 
     //Also I want to do at this part a INSERT INTO friends Where.... 
     document.getElementById("FreischaltungAusgabe").innerHTML = x; 
     } 
    } else { 
    x = "Vielleicht beim nächsten mal!"; 
    document.getElementById("FreischaltungAusgabe").innerHTML = x; 
    } 
} 
</script> 

私はJSの外にPHP変数として$ freischalten変数を取得したいです。また、この部分のテーブルに挿入したいと思います。

+0

デザインは基本的に間違っています。このようにJSとPHPを混在させる必要がある場合は、図面テーブルに戻り、自分が行っていることを再考する必要があります。おそらく、あなたがすべきことは、jsを維持することです(もちろん、あなたのjsが単一の外部ファイルにあり、jsのクリック/イベントをキャプチャし、onclickなどのものを使用しないようにしてください)。AJAX PHPとの間で情報の送受信を行います。 – junkfoodjunkie

+0

あなたはajax経由で値を保存してセッションに保存するか、クッキーを保存することができます – Mohammad

+0

ajaxで値を適切なPHPコードファイルに送信する必要があります – scaisEdge

答えて

0

JSはクライアント側の言語で、PHPはサーバー側の言語です。 JS変数をPHP変数に直接設定することはできません。 PHP変数でJS変数を取得するには、隠しフォームまたはAjaxを使用します。

0

あなたがしたいことは可能ですが、ロールページをリフレッシュするajaxコールを使用してページをリロードする必要があります。

ウェブページはデフォルトでは静的で、ブラウザがページを読み込んだ後にそのまま表示されますが、JavaScriptなどの機能を有効にできますが、JS変数をPHPに解析するにはフォームを送信するかAjaxコールを使用する必要があります別のPHPスクリプトを実行し、現在のページに結果を返します。

w3schoolsによると:

AJAXは、開発者の夢であるので、次のことができます。

  • アップデートサーバからページ
  • リクエストデータをリロードせずにWebページ - ページが持っていた後、ロード済み
  • サーバーからデータを受信 - ページがロードされた後
  • サーバーにデータを送信 - バックグラウンドで

あなたはあなたのメインのPHPの形で、このような何かを行う必要があります。

function parseVariable() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
    // the element this.responseText will be all the content returned by your php script called by the xhttp.open 
    document.getElementById("myelement").innerHTML = this.responseText; 
    } 
    }; 
    // the method can be either GET or POST 
    xhttp.open("GET", "myphpscript.php?myvariable=" + document.getElementById("myfield").value , true); 
    xhttp.send(); 
} 

JavaScriptを使用して、あなたのHTMLにparseVariable()関数を呼び出す必要がありますその後。あなたのmyphpscript.phpあなたが戻ってメインページにあなたの結果を行うと、エコーする必要があることを行う、「myFieldで」テキストコンテンツを受信するには、GETメソッドとして呼び出しを処理するには

<input type="text" name="myfield" id="myfield"> 
<button type="button" onclick="parseVariable()">Parse</button> 
<p id="myelement">&nbsp;</p> 

。変数を受け取って10を追加し、メインページに戻すとします。

関連する問題