2016-12-02 403 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