使用Ajax将价值从一个php页面传递到另一个php

时间:2020-02-03 19:16:55

标签: php jquery ajax parameter-passing

我正在尝试使用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上其他帖子中的解决方案,但到目前为止没有找到任何解决方案。希望有人给出答案。 非常感谢

2 个答案:

答案 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调用返回的数据。