执行从PHP页面的python脚本
问题描述:
我试图执行我的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上的任何内容吗?
谢谢。
答
你不能这样做,因为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脚本。
为什么你会给Apache'sudo'访问...... _ **为什么?__ – cwallenpoole