0
を持つ表示するには、渡す変数は、私は以下のように一方のコントローラsite
に2つのアクションを持っている:今、私が試してみましたactionDomain
Yii2:異なるアクション
public function actionDomain()
{
$model = new DomainCheckerForm();
return $this->render('domainChecker', [
'model' => $model,
]);
}
public function actionCheck()
{
$model = new DomainCheckerForm();
if ($model->load(Yii::$app->request->post())) {
$session = Yii::$app->session;
$session->open();
if(!isset($_SESSION['count']))
{
$_SESSION['count'] = 1;
$_SESSION['first'] = time();
}
else
{
// Increase the Count
$_SESSION['count']++;
}
$count=($_SESSION['count']);
// var_dump($count);exit;
によってレンダリングされたファイルを表示するためのアクションcheck
から変数$count
を渡したいです
echo $this->render('domainChecker', [
'count' => $count
]);
と
Yii::$app->runAction('domain', ['count'=>$count]);
:どのような成功せず、複数の方法
しかし、何も動作していないようです。
更新:あなたが代わりにエコー
return $this->render('domainChecker', [
'count' => $count
]);
のリターンを使用する必要があり、あなたが使用して別のアクションからアクションを呼び出すことができ
<head>
<style>
.loader {
text-align: center;
}
.loader span {
display: inline-block;
vertical-align: middle;
width: 10px;
height: 10px;
margin: 50px auto;
background: black;
border-radius: 50px;
-webkit-animation: loader 0.9s infinite alternate;
-moz-animation: loader 0.9s infinite alternate;
}
.loader span:nth-of-type(2) {
-webkit-animation-delay: 0.3s;
-moz-animation-delay: 0.3s;
}
.loader span:nth-of-type(3) {
-webkit-animation-delay: 0.6s;
-moz-animation-delay: 0.6s;
}
@-webkit-keyframes loader {
0% {
width: 10px;
height: 10px;
opacity: 0.9;
-webkit-transform: translateY(0);
}
100% {
width: 24px;
height: 24px;
opacity: 0.1;
-webkit-transform: translateY(-21px);
}
}
@-moz-keyframes loader {
0% {
width: 10px;
height: 10px;
opacity: 0.9;
-moz-transform: translateY(0);
}
100% {
width: 24px;
height: 24px;
opacity: 0.1;
-moz-transform: translateY(-21px);
}
}
</style>
<?php
$script = <<< JS
jQuery(document).ready(function($) {
$('.loader').hide();
$("#domain-check").submit(function (event) {
/* Stop form from submitting normally */
event.preventDefault();
/* Clear result div*/
$("#result").html('');
/* Get some values from elements on the page: */
var values = $(this).serialize();
$('.loader').show();
/* Send the data using post and put the results in a div */
$.ajax({
url: "?r=site/check",
type: "post",
data: values,
success: function (response) {
$('.loader').hide();
$('#result').html(response);
}
});
});
});
JS;
$this->registerJs($script);
?>
</head>
<?php
/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model \frontend\models\ContactForm */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\captcha\Captcha;
//use yii\web\Session;
$this->title = 'Check Domain';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-contact">
<h1><?= Html::encode($this->title) ?></h1>
<p>
If you have business inquiries or other questions, please fill out the Contact form to contact us. Thank you.
</p>
<div class="row">
<div class="col-md-8 col-md-offset-2 col-sm-10 col-sm-offset-1">
<?php $form = ActiveForm::begin(['id' => 'domain-check','enableAjaxValidation' => true,
'enableClientValidation' => false,
'fieldConfig' => [
'options' => [
'tag' => 'span',
],
],
]); ?>
<?= $form->field($model, 'domain',[
'template' =>
'<div class="input-group ">
{input}
{error}','inputOptions' => [
'placeholder' => 'i.e. yourbusinessname.com',
'class'=>'form-control',
]])
?>
<span class="input-group-btn">
<input class="btn btn-success " value="Search" type="submit"></span></div>
<?php
echo $form->field($model, 'verifyCode')->widget(Captcha::className(), [
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
]) ?>
<?php echo $count; ?>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
<div class="loader">
<span></span>
<span></span>
<span></span>
</div>
<div id="result" class="row"></div>
を追加する必要があります場合は。ビューファイルで 'echo $ count'として変数にアクセスしようとしています。 – Joshi
domainChecker.phpビューのコンテンツを表示 – scaisEdge
domainChekcer.phpビューのコンテンツで質問を更新しました。 @ Joshi。 – Joshi