1 $(document).ready意思就是说,获取文档对象就绪的时候。页面加载完成后开始运行do stuff when DOM is ready 中的语句! 在jquery中 一般为$function() {};
之前我想利用easyUI实现ajax的提交表单功能,但是form{..}函数已经写了,无法运行,就是因为之前没有加上$function(),也就是没有这个函数,裸函数不知道什么时候开始准备。
但是在easyui中调用的对话框响应的函数比如save_users, edit_users这类函数都没有加上$function(){},什么时候该用上$function()这个问题,这个判断准则是什么,目前自己还没有解决。
2 关于easyUI表单form的使用,http://www.chenjianjun.com/?p=293 已经有所涉及了,我只想说些我的想法,
这个表单提交函数的使用具有多态的特性,分为三部分,submit, {url, onSubmit}, success 三个部分,可以根据自己的需要灵活使用。
a. submit是提交表单,功能就和<input type="submit">这个按钮的功能是一样的。
b. {url, onSubmit} 这部分是发送请求时候,将url地址到服务器,用于php获取数据等等, 而onSubmit用于返回数据的数据验证,
c. success发送请求接收服务器的数据成功后,对获取的服务器数据进行操作。
如果想自己通过按钮<input type="submit">实现提交功能,那么表单提交函数,就可以不加submit这一项了。
如果自己在表单上已经注明了action="xxxxxs.php"这个属性,而且也不想预验证了,就可以不用 {url, onSubmit}
完整的表单函数样子如下:
- $(‘#ff’).form(’submit’, {
- url:…,
- onSubmit: function(){
- // do some check
- // return false to prevent submit;
- },
- success:function(data){
- alert(data)
- }
- });
3 关于easyUI demo中的application datagrid机制的思考。
界面层:html,css 控制层:js, 数据层:php。
除了比较丰富的界面,easyUI给我们极大的便利就在于控制层,我们可以不需要调用ajax,而可以直接利用提供的ajax表单提交函数,实现表格数据的获取和显示,目前我只是学到了一点。
拿表格读取和编辑这个最基本的功能来讲,
1 加载页面,easyUI自动调用ajax加载函数,发送url请求(<table>标签中的url)到服务器,然后URL:get_users.php在服务器执行,获取数据库数据并且echo $result返回数据,js获取服务器返回的数据,并将其显示在<tbody>中。这个过程由UI自己完成。
2 编辑表格,新增表格。 单击编辑或者新增按钮,然后弹出input框,输入自己新建或者编辑的信息,然后单击save,同时js中的save_user函数响应,这个时候发送相关的请求和url到服务器,服务器执行url:save_user或者edit_user的php文件,对数据库进行添加编辑操作,同时执行完echo一个信息回来(success 或者是error),js接收到服务器返回的信息然后再根据信息决定,是重新加载datagrid,加载修改后的数据还是报错。
总之这个过程是
表单<--->js响应函数<---->服务器(数据库)
这几个层之间的来回信息传递,具体的例子可以参考W3C中的ajax和php中ajax部分的教程,虽然非常短,但是足够自己对ajax和这三者之间的交互有个基础了解了。
4 关于自己上传文件,然后利用easyUI显示数据过程的思考。
easyUI demo 实现的功能主要是个单项的过程,也就是从数据库到界面的过程,即使有修改或者新建,但是始终数据源是数据库。
但是如果自己上传文件作为数据源,显示的话,就需要在数据库之前做些工作,
也就是实现 上传文件--->数据库 -->界面 的操作。比如我想实现上传excel到数据显示这部分的操作。
那么大的数据步骤是
通过ajax表单提交,文件上传到server--->应用PHP读取上传文件--->将PHP读取数据转化为mysql数据库数据---> 调用easyUI的get_users函数实现数据的访问和读取--->返回数据到界面。
这部分有两个问题。
1 表单的提交,其实用之前的ajax的表单提交函数就可以了。
2 关于PHP读取文件可以由PHPExcel或者PHP excel reader 这两个PHP的类进行读取,然后读取到mysql其实就可以了。