按 HTML 按钮时停止页面刷新?
Stop page refreshing when pressing HTML button?
大家好,我是互联网语言的新手,希望得到您的帮助,用苹果解释!
我正在尝试用 raspberry pi 3b+ 制作一个网络服务器控制的机器人。我已经使用一些 HTML 调用一些 PHP 代码然后执行 Python 脚本来移动机器人。问题是,当我按下按钮移动机器人时,页面会刷新,然后再次加载所有内容,这真的很烦人。 (HTML 和 PHP 在同一个文档中)
我读过一些 post 的文章,其中人们说要将 <button>
标签与 type="button"
一起使用,但是当我这样做时没有任何反应。让我与您分享代码。别人说用AJAX,我真的不知道怎么用
HTML:
<form action="" method="post">
<div>
<div>
<button type="button" name="boton7"><img src="imagenes/up.png"></button>
</div>
<div>
<button type="button" name="boton8"><img src="imagenes/left.png"></button><!--
--><button type="button" name="boton10"><img src="imagenes/stop.png"></button><!--
--><button type="button" name="boton9"><img src="imagenes/right.png"></button><!--
-->
</div>
<div>
<button type="button" name="boton6"><img src="imagenes/down.png"></button>
</div>
</div>
</form>
PHP:
<?php
//Primera fila || mover_arriba.py
if(isset($_POST['boton6'])){
exec('python /var/www/html/mover_arriba.py');
}
//Primera fila || mover_abajo.py
if(isset($_POST['boton7'])){
exec('python /var/www/html/mover_abajo.py');
}
?>
我想知道它是否可以在不使用 AJAX 或 JS(解释性语言让我感到困惑)的情况下完成,或者我是否可以修改此代码的某些内容以实现我想要的。如您所见,我使用了表单,我真的不明白按钮是否可以在没有表单的情况下执行某些操作,为什么有时人们使用 input="submit"
,我也看到了“onclick=
”。请使用尽可能明确的答案。
如果您还需要什么,请告诉我!
编辑:我忘了说,如果我从这个 <button type="button"
中删除 type="button"
它会起作用。
一个可能的解决方案是您可以将 PHP 代码 return 一个 'false' 值返回到表单。这将阻止页面刷新。
这样,PHP 代码将调用 python 代码,但表单不会刷新,因为它从 PHP 函数收到一个错误值。
坏消息是您将不得不使用 JavaScript 和 AJAX 来完成此操作。根本没有(合理的)解决方法。
好消息是你想做的其实很简单。由于没有条件数据,也没有要处理的 return 数据,门槛已经很低了。我还假设您不担心不良行为者滥用您代码中的漏洞,所以让我们深入探讨。
首先,让我们得到一个可以执行 AJAX 调用的库。虽然没有必要,但这会让一切变得容易得多。
在您的
元素中,放置以下行:
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
接下来,为您的
大家好,我是互联网语言的新手,希望得到您的帮助,用苹果解释!
我正在尝试用 raspberry pi 3b+ 制作一个网络服务器控制的机器人。我已经使用一些 HTML 调用一些 PHP 代码然后执行 Python 脚本来移动机器人。问题是,当我按下按钮移动机器人时,页面会刷新,然后再次加载所有内容,这真的很烦人。 (HTML 和 PHP 在同一个文档中)
我读过一些 post 的文章,其中人们说要将 <button>
标签与 type="button"
一起使用,但是当我这样做时没有任何反应。让我与您分享代码。别人说用AJAX,我真的不知道怎么用
HTML:
<form action="" method="post">
<div>
<div>
<button type="button" name="boton7"><img src="imagenes/up.png"></button>
</div>
<div>
<button type="button" name="boton8"><img src="imagenes/left.png"></button><!--
--><button type="button" name="boton10"><img src="imagenes/stop.png"></button><!--
--><button type="button" name="boton9"><img src="imagenes/right.png"></button><!--
-->
</div>
<div>
<button type="button" name="boton6"><img src="imagenes/down.png"></button>
</div>
</div>
</form>
PHP:
<?php
//Primera fila || mover_arriba.py
if(isset($_POST['boton6'])){
exec('python /var/www/html/mover_arriba.py');
}
//Primera fila || mover_abajo.py
if(isset($_POST['boton7'])){
exec('python /var/www/html/mover_abajo.py');
}
?>
我想知道它是否可以在不使用 AJAX 或 JS(解释性语言让我感到困惑)的情况下完成,或者我是否可以修改此代码的某些内容以实现我想要的。如您所见,我使用了表单,我真的不明白按钮是否可以在没有表单的情况下执行某些操作,为什么有时人们使用 input="submit"
,我也看到了“onclick=
”。请使用尽可能明确的答案。
如果您还需要什么,请告诉我!
编辑:我忘了说,如果我从这个 <button type="button"
中删除 type="button"
它会起作用。
一个可能的解决方案是您可以将 PHP 代码 return 一个 'false' 值返回到表单。这将阻止页面刷新。 这样,PHP 代码将调用 python 代码,但表单不会刷新,因为它从 PHP 函数收到一个错误值。
坏消息是您将不得不使用 JavaScript 和 AJAX 来完成此操作。根本没有(合理的)解决方法。
好消息是你想做的其实很简单。由于没有条件数据,也没有要处理的 return 数据,门槛已经很低了。我还假设您不担心不良行为者滥用您代码中的漏洞,所以让我们深入探讨。
首先,让我们得到一个可以执行 AJAX 调用的库。虽然没有必要,但这会让一切变得容易得多。
在您的
元素中,放置以下行:<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
接下来,为您的