我正在尝试执行我的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上的任何内容?
谢谢。
答案 0 :(得分:2)
PHP是服务器端代码,将在您加载页面时执行所有代码。在浏览器中查看您的源代码,您会发现您的函数中没有javascript代码 - 您可能希望使用XMLHttpRequest或Fetch
答案 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脚本。