2016-12-02 18 views
1

ボタンをクリックするとJavaScriptコードが内部にあるJavaScript関数を実行しようとしていますが、一度ブラウザにページを読み込むと、ボタンをクリックせずにすべてのJavaScript関数が実行されます。ボタンを押して関数を実行しようとすると、何も起こりません。 私のコードは次のとおりです。?機能上のすべてのPHPは、私がページをロードし、私はボタンをクリックしたときに何も起こりません一度実行する理由PHPページからpythonスクリプトを実行

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width" /> 
    <title> LED </title> 
    <script> 
     function exec_vermelho(){ 
      <?php exec("sudo python led.py 100 0 0"); ?> 
     } 
     function exec_verde(){ 
      <?php exec("sudo python led.py 0 100 0"); ?> 
     } 
     function exec_azul(){ 
      <?php exec("sudo python led.py 0 0 100"); ?> 
     } 
     function exec_amarelo(){ 
      <?php exec("sudo python led.py 100 100 0"); ?> 
     } 
     function exec_ciano(){ 
      <?php exec("sudo python led.py 0 100 100"); ?> 
     } 
     function exec_magenta(){ 
      <?php exec("sudo python led.py 100 0 100"); ?> 
     } 
     function exec_branco(){ 
      <?php exec("sudo python led.py 100 100 100"); ?> 
     } 
    </script> 
</head> 
<body> 
    <input type="button" name="botao_vermelho" value="Vermelho" onclick="exec_vermelho()"> 
    <input type="button" name="botao_verde" value="Verde" onclick="exec_verde()"> 
    <input type="button" name="botao_azul" value="Azul" onclick="exec_azul()"> 
    <input type="button" name="botao_amarelo" value="Amarelo" onclick="exec_amarelo()"> 
    <input type="button" name="botao_ciano" value="Ciano" onclick="exec_ciano()"> 
    <input type="button" name="botao_magenta" value="Magenta" onclick="exec_magenta()"> 
    <input type="button" name="botao_branco" value="Branco" onclick="exec_branco()"> 
</body> 
</html> 

誰もが知っていますかボタンやJavaScriptで何かを変更する必要はありますか?

ありがとうございます。

+1

なぜあなたはApacheのsudoアクセスを許可しますか?_ ** WHY?** _ – cwallenpoole

答えて

2

PHPはサーバ側のコードで、ページをロードした時点ですべてのコードを実行します。ブラウザでソースコードを見れば、関数内にjavascriptコードがないことがわかりますXMLHttpRequestまたはFetch

-1

PHPの解釈のため、このようにすることはできませんjavascriptの前にあなたのコード。したがって、JavascriptでPHP関数を呼び出すことは意味がありません。

pythonスクリプトを非同期に実行するPHPスクリプトをAJAX呼び出しで作成する必要があります。

同様:

// HTML 
<input type="button" name="botao_vermelho" value="Vermelho"> 

// JS 
$('input[type="button"]').click(function(event) { 
    event.preventDefault(); 

    $.ajax({ 
     url: '/phpscript.php?button=' + $(this).attr('name'), 
    }).done(function(data){ 
     console.log(data); 
    }); 
}); 

そして今、ちょうどあなたのpythonの実行を実行するPHPスクリプトを作ります。どのボタンがクリックされたのかを知るために、各ボタンからPHPスクリプトにname属性を与えるのが最善の方法です。

+0

彼はjQueryを使用しません... – Endless

+0

Boah、次に彼はプレーンなjavascriptを使用するかもしれません。私はちょうどその例のためにその多くのコードを書いたくありませんでした。 –

+0

その後、はるかに簡単なfetch apiを使って例を書いてください。xhr :) – Endless

関連する問題