使用ajax传递变量并打开下一页

时间:2016-01-18 16:06:30

标签: php ajax

我尝试使用ajax将变量从一个页面传递到下一个页面。 我已经运行了传递,但我不知道如何用这个变量打开页面。

我的实际代码:

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Ajax</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>

<!--    <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

</head>
<body>

<button id="test" class="btn btn-lg btn-primary">Test</button>

<script>
    $(document).ready(function () {

        $("#test").click(function () {
            var variable = 'AAAaaa';
            //alert($(this).attr('id'));
            $.ajax({
                type: "POST",
                url: 'view.php',
                data: {"temp": variable},
                success: function (data) {
                    alert("success!");
                }
            });
        });
    });

</script>
</body>
</html>

第二页我想看$ _Post表中的内容

<?php
$table = $_POST;
?>

<pre>
    <?= print_r($table);?>
</pre>

编辑评论:

  

不是问题。你可以在ajax中创建一个回调函数   成功的事件。成功时,从view.php中获取该数据并将其发送给   另一个ajax调用的第二页。一切都会完成   异步并完成你所要求的。 - putipong

我在视图中有数组。例如:

$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

当我按下按钮时,如何通过post和ajax将此数组发送到控制器功能并打开此操作。 我尝试过,但不起作用

 public function actionUuuu()
    {
        $request = Yii::$app->request;
        $array = $request->post();

        print_r($array)

1 个答案:

答案 0 :(得分:3)

view.php 中,您可以将表数据分配到$_SESSION,然后在第二页中稍后检索,只需使用 session_start();

必须在每个需要使用会话数据的页面上启动会话,否则它将无效。

view.php:

session_start();
if ($_POST['temp'] == 'AAAaaa') {
    $_SESSION['tableData'] = $tableData;
    echo true;
} else {
    echo false;
}
return;

使用Javascript:

$(document).ready(function () {

    $("#test").click(function () {
        var variable = 'AAAaaa';
        //alert($(this).attr('id'));
        $.ajax({
            type: "POST",
            url: 'view.php',
            data: {"temp": variable},
            success: function (data) {
                if (data == 'true') {
                     window.location.replace('secondPage.php');
                }
            }
        });
    });
});

secondPage.php

session_start();
$table = $_SESSION['tableData'];