ajax-如何不通过<form>方式提交数据,同时又刷新整个页面

问题描述

如何不通过<form>方式提交数据,同时又刷新整个页面
 <form method="post" action="test.php">
...
<input type="submit" />
</form>

通过表单

方式提交表单数据后,整个页面刷新,URL变成test.php。

var xhr = new XMLHttpRequest();
xhr.open("post", "test.php", true);
xht.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(...);
通过AJAX方式提交表单数据,只得到了test.php返回的数据,不会刷新整个页面,浏览器地址栏中URL不变。

那么,如果我的页面中没有表单

,但要向服务器test.php页面提交数据,并刷新整个页面,浏览器地址栏中URL变成test.php,新页面中有根据提交的数据生成的数据,该怎么做呢?

解决方案

可以通过AJAX ,不知道你懂不懂,刷新页面就是另一回事了,你是php,我不知道有木有。。。

解决方案二:

不通过form提交数据简单,你可以用jQuery的ajax去提交,任意网页中dom结构中的数据都可以提交,只要你的服务器认。
刷新页面也简单,location.reload()就可以了。

解决方案三:

用js自己组合成键值对提交就行了,将键值对数据放到send中,刷新的话你可以提交完毕后js刷新页面即可,不过感觉没有必要。你都用ajax提交数据到test.php了干嘛还要跳转到test.php,多此一举啊
......
name:

age:

```
var s='name='+encodeURIComponent(document.getElementById('name').value);
s+='age='+encodeURIComponent(document.getElementById('age').value);
//...........其他的控件
var xhr = new XMLHttpRequest();
xhr.open("post", "test.php", true);
xht.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onreadystatechange=function(){
if(4==xhr.readyState){
if(200==xhr.status){alert('成功提交,服务器返回:'+xhr.responseText);location.href='test.php'}
else alert('动态页错误,返回内容:'+xhr.responseText)
}
}
xhr.send(s);//////发送键值对
```

解决方案四:

用js自己组合成键值对提交就行了,将键值对数据放到send中,刷新的话你可以提交完毕后js刷新页面即可,不过感觉没有必要。你都用ajax提交数据到test.php了干嘛还要跳转到test.php,多此一举啊

 name:<input type="text" id="name"/><br/>
age:<input type="text" id="age"/>
。。。。。。。其他的控件,加上id
<script>
 var s='name='+encodeURIComponent(document.getElementById('name').value);
    s+='age='+encodeURIComponent(document.getElementById('age').value);
        //...........其他的控件
        var xhr = new XMLHttpRequest();
xhr.open("post", "test.php", true);
xht.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onreadystatechange=function(){
   if(4==xhr.readyState){
         if(200==xhr.status){alert('成功提交,服务器返回:'+xhr.responseText);location.href='test.php'}
            else alert('动态页错误,返回内容:'+xhr.responseText)
      }
}
xhr.send(s);//////发送键值对
</script>
时间: 2025-01-03 11:27:54

ajax-如何不通过&amp;lt;form&amp;gt;方式提交数据,同时又刷新整个页面的相关文章

form如何选择url提交数据?

问题描述 form如何选择url提交数据?一个登陆窗口要选择登陆电信,网通的ip,如何做?<script>functionsave(){document.form1.action="http://********.227/webui/ReceiveLogin.aspx";document.form1.submit();}functionsend(){document.form1.action="http://**********.219/webui/Receive

java中form以post、get方式提交数据中文乱码问题总结_java

  一:form在前台以post方式提交数据:     浏览器将数据(假设为"中国")发送给服务器的时候,将数据变成0101的二进制数据(假设为98 99)时必然要查码表,浏览器以哪个码表打开网页,浏览器就以哪个码表提交数据.数据到达服务器后,数据(98 99)要封装到request中,在servlet中调用Request的getParameter方法返回的是字符串("中国"),方法内部拿到数字后要转成字符,一定要查码表,由于request的设计者是外国人,所以默认

form 能不能只提交数据 不打开页面啊

问题描述 rt---- 解决方案 解决方案二:跳转到本页好了解决方案三:这恐怕是不行的,如果它能这样做的了,ajax恐怕就不会诞生了解决方案四:引用1楼java_cxrs的回复: 跳转到本页好了 ---那数据就不能发送了啊解决方案五:引用2楼firelightcz123的回复: 这恐怕是不行的,如果它能这样做的了,ajax恐怕就不会诞生了 同意!解决方案六:引用4楼qustgjk的回复: 引用2楼firelightcz123的回复:这恐怕是不行的,如果它能这样做的了,ajax恐怕就不会诞生了同意

ajax post get方式提交数据详解

ajax有两种提交数据的方式,分别为get和post.post方法可传输大于2K的数据,在Ajax里的应用不同之处在于:"post方法的请求地址与传输的数据是放在两个对象里--请求地址放在open对象里,传输的数据放在send对象里:并且在传输数据之前定义一个传输文件HTTP头信息(setRequestHeader)" 用上循环就是为了在数据发送前进行合理的处理,解决在脚本语言对数据进行另外需求处理时出现的超时现象.处于对ajax认识未深,如有说得不对或不到位的,还请指教. ajax中

form表单只提交数据而不进行页面跳转的解决方案_jquery

一般的form提交操作写法为 复制代码 代码如下: <form action="saveReport.htm" method="post"> -- <input type="submit" value="保存报告"/> </form> 点击submit按钮或直接回车可以将数据提交到saveReport页面,但是提交后也会跳转到saveReport页面 如何做到 将数据提交到saveRepor

Ajax技术(WEB无刷新提交数据)

ajax|web|数据|刷新|无刷新 Ajax内部交流文档一.使用Ajax的主要原因 1.通过适当的Ajax应用达到更好的用户体验: 2.把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的. 二.引用 Ajax这个概念的最早提出者Jesse James Garrett认为: Ajax是Asynchronous JavaScript and XML的缩写. Ajax并不是一门新的语言或技术,它实际上是几项技

Ajax技术(WEB无刷新提交数据)_AJAX相关

Ajax内部交流文档一.使用Ajax的主要原因  1.通过适当的Ajax应用达到更好的用户体验:  2.把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的.     二.引用  Ajax这个概念的最早提出者Jesse James Garrett认为:  Ajax是Asynchronous JavaScript and XML的缩写.  Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在

javascript ajax提交数据中文乱码解决办法

一个UTF8页面需要POST数据到GB2312页面,这时中文的编码是按照UTF8提交过去的,GB2312页面无法接收.如何实现,网络搜索了一种很不错的方法,但有缺陷,这里一一说起. 1.FORM标签里加上accept-charset代码,这个能把FORM里的数据自动编码成指定的字符集提交,比如在UTF8页面提交数据到GB2312,代码就是accept-charset="GB2312″,但accept-charset除了IE其他浏览器都支持... 2.这时可以在提交时触发JS,document.c

ajax方式实现注册功能(提交数据到后台数据库完成交互)_AJAX相关

一.当我们在验证表单的时候,为了阻止把错误的也发送到服务器,我们通常这样设置: $(function(){ var isusername;(定一个变量) var ispwd; $('form').submit(function(e){ if(!isusername || !ispwd){ e.preventDefault();(阻止事件的默认事件) }) }); 1.在nodejs中我们可以用以下方法来(加载)跳转页面:JQuery 中的load()  这是实行加载一个页面 window.loc