新手关于 Ajax的 XMLHttpRequest “数据发送” 的问题 。。。
时间:2011-08-16
来源:互联网
大家好,
我看了XMLHttpRequest 的数据发送方式,
我想向PHP服务器提交一个表单,里面有很多元素,
我用一下代码,PHP服务器并没有收到任何数据:
JScript code
我又用了以下代码:
JScript code
这下子收到数据了。。。
我是想问,XMLHttpRequest 发送数据,是不是一定要在send()里面标注要发送的数据,或者用get的方法,在url后面添加一串东西才能发送数据啊? 我的表单有很多元素,如果是这样的话,这不代表了我的send()里面要写一大串东西吗?
以下是我的完整代码:
JScript code
HTML code
我看了XMLHttpRequest 的数据发送方式,
我想向PHP服务器提交一个表单,里面有很多元素,
我用一下代码,PHP服务器并没有收到任何数据:
JScript code
xmlhttp.open("POST","test1.php",true); xmlhttp.send(null);
我又用了以下代码:
JScript code
xmlhttp.open("POST","test1.php",true); xmlhttp.send("id="id & "article="article & "date="date);
这下子收到数据了。。。
我是想问,XMLHttpRequest 发送数据,是不是一定要在send()里面标注要发送的数据,或者用get的方法,在url后面添加一串东西才能发送数据啊? 我的表单有很多元素,如果是这样的话,这不代表了我的send()里面要写一大串东西吗?
以下是我的完整代码:
JScript code
<!-- // 定义XMLHttpRequest对象; var XmlObject; // 完成XMLHttpRequest初始化; function CreatXMLHttpRequest(){ if(window.XMLHttpRequest){ XmlObject = new XMLHttpRequest(); } else if(window.ActiveXObject){ try{ XmlObject = new ActiveXObject("Msxm12.XMLHTTP"); } catch(e){ try{ XmlObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ ShowMSG(e); } } } } //发送信息send function SendRequest(id){ CreatXMLHttpRequest(); var url = "data_process.php"; XmlObject.open("POST",url,true); XmlObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); XmlObject.onreadystatechange = responseToPage; XmlObject.send("id="+id); } // 判断onreadystate 状态,并在网页显示返回的数据; function responseToPage(){ if(XmlObject.readyState == 4 && XmlObject.status == 200){ var responseText = XmlObject.responseText; document.getElementById("responseText").innerHTML = responseText; } } //这个是显示信息函数,包括错误信息显示; function ShowMSG(msg){ window.alert(msg); }
HTML code
<input id="article" name="article" type="text" /></br> <input type="button" value="Submit" onclick='SendRequest(document.getElementById("article").value)' />
作者: BraveRu 发布时间: 2011-08-16
楼主,如果你想向服务器POST数据,只有像你所说的那样会提交很多的数据.
作者: xiage 发布时间: 2011-08-16
你可以自己写一个方法获取一个表单中的全部数据,然后根据input的name拼接成需要的字符串
也就是key1=value1%key2=value2的这种形式
然后send的时候直接getData(表单名)
也就是key1=value1%key2=value2的这种形式
然后send的时候直接getData(表单名)
作者: KongHuLu 发布时间: 2011-08-16
引用 2 楼 konghulu 的回复:
你可以自己写一个方法获取一个表单中的全部数据,然后根据input的name拼接成需要的字符串
也就是key1=value1%key2=value2的这种形式
然后send的时候直接getData(表单名)
你可以自己写一个方法获取一个表单中的全部数据,然后根据input的name拼接成需要的字符串
也就是key1=value1%key2=value2的这种形式
然后send的时候直接getData(表单名)
能否举个例子呢?谢谢。。。
作者: BraveRu 发布时间: 2011-08-16
POST方法要在send中发送键值对字符串
get要在url后面添加键值对
如果懒得手动组合键值对,建议改用jquery框架,有serialize方法可以将表单序列化为键值对
如果不想导入jquery,自己参考jquery怎么写的序列化方法
get要在url后面添加键值对
如果懒得手动组合键值对,建议改用jquery框架,有serialize方法可以将表单序列化为键值对
如果不想导入jquery,自己参考jquery怎么写的序列化方法
作者: showbo 发布时间: 2011-08-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28