首页 » SEO优化 » openwrtphpgd库技巧_openwrt luci开拓教程系列04 给lua页面传参数1

openwrtphpgd库技巧_openwrt luci开拓教程系列04 给lua页面传参数1

访客 2024-11-16 0

扫一扫用手机浏览

文章目录 [+]

我们利用一个示例来解释

假设有一个uci配置文件为testarg

openwrtphpgd库技巧_openwrt luci开拓教程系列04  给lua页面传参数1

# cat /etc/config/testarg -------testarg文件存在config info demo option proto "xxxx" option arg "xxbbbb"

我们的示例lua页面叫做argv.lua,路径在/usr/lib/lua/luci/model/cbi/admin_application/argv.lua,以是argv.lua页面的网页入口声明如下:

openwrtphpgd库技巧_openwrt luci开拓教程系列04  给lua页面传参数1
(图片来自网络侵删)

entry({"admin", "application", "testarg"}, cbi("admin_application/argv"), translate("testarg"), 82)

将上面代码增加到controller文件夹中的某个文件中

在另一个页面中以按钮触发的办法,或者其他任何办法跳转到我们的argv页面,如下按钮触发的示例

btn1 = nn:option(Button,"btn",translate("btn"))btn1.inputstyle="apply" btn1.write=function(self,section) btn1.titleref=luci.http.redirect(luci.dispatcher.build_url("admin/application/testarg").."?thisisargv1=aaa&argv2=bbbbb")end

当点击btn1指定的按钮时,就会跳转到新的页面,要求的URL如下示例

http://192.168.6.1/cgi-bin/luci/;stok=e75e2031be17f55fbccd30aac81dfb32/admin/application/testarg?thisisargv1=aaa&argv2=bbbbb

从上面可以看到argv页面被调用了,而且传入了参数?thisisargv1=aaa&argv2=bbbbb

那么如何在argv.lua页面中获取传入的参数呢

直接分享argv.lua吧

#cat /usr/lib/lua/luci/model/cbi/admin_application/argv.lua gd = Map("testarg", translate("gateway")..translate("Set"),translate("please click apply button after configure all"))s = gd:section(NamedSection,"demo","Demo")p= s:option(Value, "proto", "Protocol")-----重点:根据本页面渲染时URL中的argv2的参数值来判断是否展示干系内容if luci.http.formvalue("argv2") ~= "bbbbb" then s:option(Value, "arg", "notbbb")else s:option(Value, "arg", "bbb")end--当页面提交时会在更新/etc/config/testarg文件后,调用此函数,以是在此函数中可以获取最新提交的值,并做一些操作--关于map提交时的回调函数列表请查看“CBI中map提交时的回调函数”文档function gd.commit_handler(self) if self.proceed or self.changed then -- 数据有修正? --do something end endreturn gd

来日诰日禀享下另一种给lua页面传参数的方法。

标签:

相关文章

北大数据楼,智慧校园的璀璨明珠

随着信息技术的飞速发展,大数据已成为国家战略资源,而高校作为科技创新的前沿阵地,对大数据的重视程度日益加深。在我国众多高校中,北京...

SEO优化 2024-12-17 阅读0 评论0