luci与页面的数据交互

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


展开阅读全文

没有更多推荐了,返回首页