jquery ajax怎么在load()进来的“页面”里提交数据并返回结果而不刷新?

一、首先有一个主页面index.php,div#right是操作区域,先用jquery的方法把a.php页面load进来,
<div id="right"></div>

二、接着是一个提交表单的页面a.php,有2个元素,文本框text和提交按钮btn,
<form id="myForm" action="b.php">
<input id="text" type="text" />
<input id="btn" type="submit" value="提交" />
</form>

三、接着是接收a.php数据的处理页面b.php,
if($_POST){...处理数据...}

四、整个过程只在index.php页面,换句话说就是不刷新index.php的情况下完成以上操作。
最新回答
执意画江山

2024-11-07 01:33:16

在你的load()方法中 用ajax请求啊
$.ajax({
type:"POST",
dataType:"json",
url:"请求路径",
data:"参数",
success : function(result) {
if(result){
// 请求返回的 result 结果
}
}
});
小昊昊

2024-11-07 02:01:12

首先加载a.php
$(function(){
$("#right").load("a.php");//加载a.php内容
$("#btn").click(function(){//当点击提交按钮时
var txt = $("#text").val();//将输入数据存放入变量txt
$("#right").load("b.php?text="+txt);//将txt提交给b.php处理
return false;//阻止表单提交事件冒泡,无刷新载入
});
});
追问
如果$("#text").val();是很多的值呢?N个text,该怎么传给B.php,也是用这个url传参吗?b.php?text=txt&text2=txt2&text3=txt3&textN=txtN,这样?有没有简洁点的方法呢?
追答
用json传递啊

ajax本身就是支持的小数据传递 你非要传递那么多数据还用ajax干什么。。

简短您的代码,优化您的配置,用最小的代价实现最多的功能

多值传递 $().load("a.php",{text:value,text2:value....})
匆匆过客

2024-11-07 01:55:24

这个是浏览器默认的缓存机制,解决方法有两种:
一种是在抬头重写缓存比如设置"Expires", 0等几个参数,还有一种是load("url")这个里面的URL后面多加一个参数比如1.php?d=date("H:i:s") 这样能保证每次访问的连接总有一点点的区别,浏览器就不会去调用缓存了。