2016-12-02 5 views
1

Я пытаюсь выполнить мои функции javascript, которые имеют код PHP внутри, когда я нажимаю кнопку, но как только я загружаю страницу в браузере, все функции javascript выполняются без нажатия любой кнопки. Когда я пытаюсь нажать кнопку и выполнить функцию, ничего не происходит. Мой код:Выполнение скрипта python с php-страницы

<!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 на функции Execute когда я загрузить страницу, а затем ничего не происходит, когда я нажимаю на кнопку? Нужно ли мне что-либо менять на кнопках или javascript?

спасибо.

+1

ПОЧЕМУ вы бы предоставили Apache 'sudo' доступ ... _ ** ПОЧЕМУ? ** _ – cwallenpoole

ответ

2

PHP - это код на стороне сервера и выполнит весь код в том месте, где вы загрузили страницу. Посмотрите на исходный код в браузере и вы увидите, что нет Javascript код внутри ваших функций - вы можете посмотреть в использовании XMLHttpRequest или Fetch

-1

Вы не можете сделать это так, потому что PHP толкует ваш код перед javascript. Поэтому не имеет смысла вызывать функцию PHP с помощью Javascript.

Вам необходимо сделать вызов AJAX скрипту php, который запускает скрипт 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); 
    }); 
}); 

А теперь просто сделать PHP скрипт, который запускает ваш питон казнь. Чтобы узнать, какая кнопка была нажата, я полагаю, что лучший способ - дать атрибут name от каждой кнопки к скрипту php.

+0

Он не использует jQuery ... – Endless

+0

Boah, то он может использовать простой javascript. Я просто не хотел писать такой код для примера. –

+0

, тогда напишите пример, используя fetch api, который намного проще, чем xhr :) – Endless

Смежные вопросы