簡體   English   中英

Yii2將大數組從一個視圖傳遞到另一個控制器

[英]Yii2 pass big array from one view to another controller

我有大數組,這是控制器的結果

public function actionAaaa()
    {
        //somoethig, effect array
        return $this->render('test', [
        'array' => $array
        ]);
    }

例如在視圖中:

<pre>
    <?print_r($array);
</pre>

現在,我想將此數組從視圖傳遞到另一個動作控制器。 我不知道該怎么做。 我正在嘗試:

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

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

        $("#test").click(function () {
            var variable = <?=$array?>;
            //alert($(this).attr('id'));
            $.ajax({
                type: "POST",
                url: 'controller/action',
                data: variable,
                success: function (data) {
                    alert("success!");
                }
            });
        });
    });

</script>

但是當我嘗試使用下一個控制器時,我什么也沒看到:

public function actionBBBB()
    {
        $request = Yii::$app->request;
        $tablica = $request->post();

        echo 'Tablica POST';
        echo '<br />';
        echo '<pre>';
        print_r($tablica);
        echo '</pre>';
        echo '<br />';
        echo 'XXXxxxXXX';
    }

任何想法?

您不能像這樣發布整個數組。 但是,您可以對其進行序列化:

var variable = <?serialize($array);?>

然后,您可以稍后對其進行反unserialize

這只是一種選擇。 有人會說這不好。 大概是。 您也可以使用SESSION

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM