2016-12-05 13 views
0

私は答えを見つけるために最善を尽くしましたが、まだ固執しています。 PHPの初心者はこちら。 xmlhttprequestまたはajaxを使用してjsコードからPHPファイルを呼び出すことができます。JSを使用してPHPファイルから特定の関数を実行する方法

私のPHPファイルにはさまざまなクラスと関数があり、jsコードで "nameColor"関数を実行したいとしましょう。

public function nameColor($playerlvl, $monsterlvl) { 
     if ($playerlvl === $monsterlvl) { 
     $this->colorToPlayer = "white"; 
     } else if ($playerlvl < $monsterlvl) { 
     $this->colorToPlayer = "red"; 
     } else if ($playerlvl > $monsterlvl) { 
     $this->colorToPlayer = "blue"; 
     } 
    } 

私は関数のために属性を設定し、結果を得るためにそれを実行する必要があります。私はどうしたらいいの?

私のjsのコードは(私のPHPファイルを呼び出し、HTMLページにいくつかのデータを追加する)だけである:

<script> 
function getInfoPHP() { 
    $.ajax({ 
     url:"l2charcreation.php", //the page containing php script 
     type: "GET", 
     success:function(result){ 
     $('.newCharacterInfo').append(result); 
    } 
    }); 
} 

</script> 
+0

これまでのJSコードを表示してください – Peon

+0

AJAXは進める方法です。 –

+0

私の小さなjsを追加しました。私はajaxを使ってphpファイルを呼び出しますが、選択した属性の関数をどのように実行するのか分かりません... – Genia

答えて

0

あなたはこのようなあなたのAjaxにデータを追加することができます

function getInfoPHP() { 
    $.ajax({ 
     url:"l2charcreation.php", //the page containing php script 
     type: "GET", 
     data: {func: 'getColor', attr1: '5', attr2: '4'}, 
     success:function(result){ 
     $('.newCharacterInfo').append(result); 
    } 
    }); 
} 

し、その後でl2charcreation.php $_GET['func']の値に基づいて機能を切り替え、$_GET['attr1']などの属性を提供する必要があります。その後、あなたはPHPで結果をエコーする必要があり、あなたはあなたのjsでそれを受け取ります。簡単な例: あなたは2つだけファイルが持っているとしましょう::

  • index.html(あなたのjsを含むもの)を
  • l2charcreation.php(1と

    function foo($a1) { 
        echo 'processed foo'.$a1; 
    } 
    
    function bar() { 
        echo 'processed bar'; 
    } 
    
    switch($_GET['func']) { 
    case 'foo': 
        foo($_GET['attr1']); 
        break; 
    case 'bar': 
        bar(); 
        break; 
    default : 
        echo 'function not found'; 
    } 
    

    一般的な考え方は次のようなものです多くのPHP関数)

そしてyoあなたはのjsからl2charcreation.phpの特定のphp関数によって生成されたデータにアクセスしたいと思います。 jsでajax関数を使用すると、バックグラウンドでサーバーに接続し、関数の名前とGETまたはPOSTで指定された引数を持つl2charcreation.phpを求めます。サーバは、このファイルにアクセスするブラウザにどのように応答するかと同様に応答します。したがって、index.htmlのjsにいくつかのデータを渡す場合は、l2charcreation.phpにエコーする必要があります。

+0

私はその部分を理解しませんでした。 $ _GET ['func']の値に$ _GET ['attr1']などの属性を指定します。コードでどうぞ。どうもありがとう。 – Genia

+0

私はOOPでこれをしようとすると、私の関数がクラス内にあるときに動作すると思いますか?私がPHPの中で行ったように、関数を呼び出す前に新しいオブジェクトを開始するべきではありませんか?それを行う方法? – Genia

+0

私は答えを編集しました。あなたのPHPがオブジェクト指向であるかどうかは関係ありません。データをどちらかの方法でエコーする必要があります。 –

関連する問題