从php页面执行python脚本

时间:2016-12-02 13:21:36

标签: javascript php python html5

我正在尝试执行我的javascript函数,里面有PHP代码,当我点击按钮但是一旦我在浏览器上加载页面所有javascript函数执行而不点击任何按钮。当我尝试按下按钮并执行某项功能时,没有任何反应。 我的代码是:

<!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上的任何内容?

谢谢。

2 个答案:

答案 0 :(得分:2)

PHP是服务器端代码,将在您加载页面时执行所有代码。在浏览器中查看您的源代码,您会发现您的函数中没有javascript代码 - 您可能希望使用XMLHttpRequestFetch

答案 1 :(得分:-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脚本。