【发布时间】:2016-01-18 17:25:33
【问题描述】:
我的数组很大,是控制器的结果
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';
}
有什么想法吗?
【问题讨论】:
-
您在 AJAX 调用中使用的 url 是
controller/action,但您的操作名为actionBBBB。这可能是您什么都看不到的一个原因。尝试使用controller/b-b-b-b,而不是controller/action。为什么您的操作首先命名为actionBBBB?尝试使用更具描述性的名称,例如actionDisplayBigArray,并将您的actionAaaa命名为actionGenerateBigArray。
标签: php yii2 parameter-passing