Php Yii2将大阵列从一个视图传递到另一个控制器
我有一个大数组,这是控制器的结果Php Yii2将大阵列从一个视图传递到另一个控制器,php,yii2,parameter-passing,Php,Yii2,Parameter Passing,我有一个大数组,这是控制器的结果 public function actionAaaa() { //somoethig, effect array return $this->render('test', [ 'array' => $array ]); } <pre> <?print_r($array); </pre> 例如,在视图中: 你不能像那样发布整个数组
public function actionAaaa()
{
//somoethig, effect array
return $this->render('test', [
'array' => $array
]);
}
<pre>
<?print_r($array);
</pre>
例如,在视图中:
你不能像那样发布整个数组。但是,您可以将其序列化以执行此操作:
var变量=
然后您可以以后取消序列化它
这只是一种选择。有人会说这很糟糕。可能是。您也可以使用会话
在AJAX调用中使用的url是controller/action
,但您的操作名为actionBBBB
。这可能是你什么都看不到的原因之一。请尝试使用controller/b-b-b
,而不是controller/action
。为什么您的操作首先命名为actionBBBB
?尝试使用更具描述性的名称,如actionDisplayBigArray
,您的actionAaaa
将命名为actionGenerateBigArray
。
<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);?>