2016-12-02 181 views
1

我试图执行我的JavaScript函数,有PHP代码里面,当我点击一个按钮,但一旦我在浏览器上加载页面所有JavaScript函数执行时不点击任何按钮。当我尝试按下按钮并执行一个功能时,什么都不会发生。 我的代码是:执行从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> 

有谁知道为什么所有的功能PHP执行一次我加载页面,然后当我点击一个按钮,没有任何反应?我需要更改按钮或JavaScript上的任何内容吗?

谢谢。

+1

为什么你会给Apache'sudo'访问...... _ **为什么?__ – cwallenpoole

回答

2

PHP是服务器端代码,并且会在您加载页面的位置执行所有代码。在浏览器中看看你的源代码,你会发现你的函数里面没有javascript代码 - 你可能想用XMLHttpRequestFetch

-1

你不能这样做,因为PHP解释你的代码在JavaScript之前。所以用Javascript调用一个PHP函数是没有意义的。

您需要对php脚本进行AJAX调用,该脚本异步运行python脚本。

像:

// 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脚本。要知道哪个按钮被点击了,我想最好的方法是将每个按钮的name属性赋予php脚本。

+0

他不使用jQuery ... – Endless

+0

Boah,那么他可能会使用普通的javascript。我只是不想为例子编写那么多的代码。 –

+0

然后使用fetch api编写一个例子,它比xhr更容易:) – Endless