如何在“view”目录中实现用户操作触发ubus方法?

我正在尝试使用openwrt和luci实现GUI的一些代码。 我想知道如何实现一个按钮或一个表单,当用户提交时触发lua命令。

我使用ubus编写了一个lua脚本来控制gpios和继电器,现在我正在尝试制作一个GUI,使用户可以通过ubus命令控制每个GPIO和继电器。

我知道如何通过GUI调用ubus方法。 我创建了一个带有多个图形项的新页面。是否可能实现一个按钮/表单,该按钮/表单更改一个变量,而这个变量将被lua脚本使用?

谢谢。

点赞
用户11641607
用户11641607

有两种简单的方法可以实现这个:

  1. 发送POST/GET请求到控制器。
  2. 在HTML中使用Lua函数。

第一种方法在概念上并不难理解,你可以在这里了解如何在JavaScript(AJAX)中使用POST/GET请求:https://www.w3schools.com/jquery/jquery_ajax_get_post.asp

第二种选项对于非常简单的东西(或者为了测试目的)来说也是可以的,但我建议不要选择它而选择第一种,因为第一种写起来更简单。你只需要简单地用<% (在这里插入代码) %>把Lua代码包围起来。

然而,还有一种方法完全不依赖于Lua/JavaScript。你可以制作一个配置文件(因为似乎你正在将一些东西保存到它),并使用procd在任何对配置文件的更改后启动服务/更改某些参数。这是如何做的示例:https://openwrt.org/docs/guide-developer/procd-init-scripts

2019-06-14 17:05:51
用户9819479
用户9819479

使用curl命令,您可以在按下按钮时触发curl命令,从而实现您的功能。

2019-07-27 17:00:35