Если вам нужно только сохранить страницу, не так ли легко передать параметр page
в ваш url-адрес (<model/view>
), например <model>/view?id=<id>&page=<page>
?
в вашем представлении index.php
, отредактируйте свой ActionColumn следующим образом:
[
'class' => 'yii\grid\ActionColumn',
'urlCreator' => function ($action, $model, $key, $index) {
return \yii\helpers\Url::to([$action, 'id' => $model->id, 'page' => Yii::$app->request->getQueryParam('page', null)]);
},
],
Как вы можете видеть, я получаю параметр страницы из URL-адреса запроса и передаю его кнопкам действий моделей (всем кнопкам, но в вашем вопросе он будет достаточно для кнопки view
, конечно)
И когда вы нажимаете на view
модель, в нашем контроллере нам нужно получить это значение page
и передать его на наш view.php
вид (в
Наш ModelController:
public function actionView($id, $page = null)
{
return $this->render('view', [
'model' => $this->findModel($id),
'page' => $page,
]);
}
И, наконец, представление view.php
получит значение page
и заполнит index
url ( если не null):
/* @var $page int */
$this->title = $model->name;
$this->params['breadcrumbs'][] = ['label' => 'Index', 'url' => ['index', 'page' => $page]];
Поэтому, когда вы нажимаете палитру Index, она откроет страницу, в которую вы ввели.
Некоторые преимущества снова повторяют выполнение сеанса ( @ user1764431):
Некоторые недостатки :
[g1 3] Document.write
создает разметку HTML, а не простой текст. В HTML новая строка представлена элементом <br/>
. Если бы вы писали в консоль браузера, вы бы не создавали разметку HTML, поэтому символ новой строки "\ n" будет уместным.
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8">
<style> body { white-space: pre-wrap; }
</style>
</head>
Стиль пробела: предварительная перенос будет отображать '\ n' как новые строки. Так работает HTML, с JavaScript это не проблема.
Как говорит @mrid, когда вы используете document.write('HTML AS STRING')
для написания HTML-кода в виде строки, поэтому при использовании \n
не является HTML-сущностью, поэтому вы можете использовать <br>
html-тег для написания новой строки или используйте html-код сущности как 

в вашем коде.
Проверьте официальный список объектов HTML для быстрого ознакомления.
document.write()
пишет блок HTML. А в HTML <br>
создает новую строку. Поэтому, если вы хотите создать новую строку при использовании document.write()
, вам придется использовать <BR>