我正在尝试使用AJAX将某些值从一个php页面传递到另一个php页面,但是我无法正确传递它。目的还在于在将值传递给下一页之后加载下一页。 但是我无法做到这一点,并且该值没有传递到下一个php页面。我得到了错误
注意:未定义索引:var1
这是我第一页的Java代码
function next(){
$.ajax({
url: "next.php",
data: { var1 : 123 },
success: function( data ) {
console.log( data );
}
}).done(function(data) {
$("#content").load("next.php");
});
}
这是首页的html代码
<button onclick="next()">Click me</button>
<div id="content">
现在在第二页中,我正在使用它来获取变量
<?php echo $_GET['var1'];?>
我尝试了Internet上其他帖子中的解决方案,但到目前为止没有找到任何解决方案。希望有人给出答案。 非常感谢
答案 0 :(得分:3)
通过运行$('#content').load("next.php")
,实际上是在没有查询参数的情况下再次加载页面。您已经在成功函数中获得了对next.php的请求响应-它存储在变量data
中。因此,您只需在成功函数中执行$('#content').html(data);
。
function next(){
$.ajax({
url: "next.php",
data: {var1 : 123},
success: function( data ) {
$('#content').html(data);
}
});
}
请注意,成功函数仅在HTTP 200上执行,因此,如果您真的想花哨的话,可以这样做:
function next(){
$.ajax({
url: "next.php",
data: {var1 : 123},
success: function( data ) {
$('#content').html(data);
},
error: function() {
console.log("an error occurred");
}
});
}
答案 1 :(得分:2)
将下一个功能代码更改为此:
function next(){
$.ajax({
url: "next.php",
data: {var1 : 123},
}).done(function(data) {
$("#content").html(data);
});
}
jQuery中的 .load()
将执行另一个不带数据参数的Ajax请求,这就是为什么获得Notice
的原因。同样,您也不会在内容div中插入从Ajax调用返回的数据。