htm中通过XHR调用lua脚本,lua script location : /usr/lib/lua/luci/controller/admin/xxx.lua
xxx.htm:
1.静态调用
var callPath='<%=luci.dispatcher.build_url("admin", "xxx", "dev_info")%>';
callPath=callPath+'/'+param1+'/'+param2; //如果需要传参
XHR.get(callPath,null,function(x,rval){
......
}
);
2.动态调用
var callPath='<%=luci.dispatcher.build_url("admin", "xxx", "dev_info",parameter)%>';
XHR.poll(5,callPath, null,function(x,callPath rval){
......}
);
第一个参数为定时刷新时间(单位:S)
第二个参数是luci生成的路径,其中parameter是传递给lua的参数
第三个参数暂时未知,填null不影响
第四个是回调函数:
x:是XHR对象,一般用不着
rval:是lua函数的返回值(一般取值rval[0])
3.触发submit提交调用
<script>
document.getElementById("ID_INPUT_submit").value=paramt; //value 值将会被传到lua中
document.getElementById("ID_INPUT_submit").click(); //触发submit事件
</script>
<form style="display:none" method="post" action="<%=luci.dispatcher.build_url("admin", "xxx","dev_info")%>" enctype="multipart/form-data">
<input id="ID_INPUT_submit" name="getpackage" type="submit" \>
</form>
xxx.lua:
entry({"admin", "xxx", "dev_info"}, call("dev_info"), nil).leaf = true
页面方法1,2相同:
--paramval:接收传下来的参数,(有两个,写两个入参)
function dev_info(paramval)
local function getDev(val)
......
return .....
end
luci.http.prepare_content("application/json")
luci.http.write('[')
luci.http.write_json(getDev(paramval))
luci.http.write(']')
end
页面方法3:
function dev_info()
local value=luci.http.formvalue("getpackage") --获取传下来的value值,其中getpackage是input的name
.......
end