jquery.form提交后如何获取数据?
$("button").click(function(){ alert($(this).serialize());});//或者$('form').submit(function() { alert($(this).serialize()); return false;});
serialize() 方法通过序列化表单值,创建 URL 编码文本字符串
php获取不到post方式提交的数据?
你把表单form的提交方法method从POST换成GET,你就能在URL清楚地看到每次提交的内容了,这样更方便新手理解.不过你也可以在浏览器提供的F12开发者工具的网络里查看到请求的GET/POST/请求头等信息.
PHP是HTML预处理器,浏览器首次加载test.php页面,服务器PHP其实并没有拿到用户提交的数据,也就是首次访问生成的HTML页面里的内联JS代码里的alert()是没有用户数据的,在你提交表单后才有,所以会出现你说的"页面JS总是获取到前一次请求的值".
最后再说个安全性问题,你的代码中,$_POST['one']是一个用户输出的数据,在你把用户输入的数据输出到页面上时,需要注意防御XSS注入,防御方法如下:
如果你是把用户输入的数据输出到
HTML上下文
中,应该这样:如果你是把用户输入的数据输出到
JS上下文
<script></script>中,应该这样:不过个人还是建议分离JS跟PHP,也就是PHP不要直接输出内容赋值给JS,这样JS代码可以单独放到一个JS文件里.
JS可以这样拿到传统表单提交里的数据并进行AJAX提交,以jQuery为例,将传统form表单提交轻松改造为AJAX提交:
可见HTML传统表单并不需要修改,JS代码里也没有混有PHP代码,编程逻辑就清晰多了.
如何用jquerymobile开发webapp?
jQuery Mobile是一个基于jquery的html 5移动网站框架,用它做出来的网站界面和App风格类似。jQuery Mobile文档,内容不多,耐心看完只需要1个小时,大体分成8大功能点page:最基准单元,包括header,footer,导航栏dialog:对话框,在手机屏幕弹出dialog来交互,我觉得不是很友好transitions:转场效果form:表单button:大button,小button(放在各种栏上的都是小button),还提供了若干内置标准iconlistview:列表,这是jquery mobile的核心UI,提供了10几种类型的List,简单好用event:各种滚动,滑动,拖拽事件Theming:官方提供了5种皮肤,也有工具可以自定义,切换皮肤只需要改动一个classjQuery Mobile全面支持ajax,但也可以当做普通html模板在后端渲染数据,我选择后面一种
html中如何不使用type=file上传文件?
常用的上传方法也就几种,一种就是html5表单提交方式例子代码如下:
<form id="myForm">
<input type="file" id="u_photo" name="u_photo" />
<input type="button" id="submit-btn" value="上传" />
</form>
另一种使用无刷新ajax方法,Jquery用法例子如下:
$("#submit-btn").on('click', function() {
$.ajax({
url:"/test/upload",
type:"post",
data:new FormData($("#myForm").get(0)),
cache: false,
processData: false,
contentType: false,
success: function () {
alert("上传成功!");
}
});
});
这两种是最常用也是经常用到,还有其他拖拽,粘贴等不常用就不具体介绍。