来自控制器的YII2 PJAX和javascript函数调用操作
我实现了下面的时间自动刷新示例。(仅间隔函数设置为1秒) 我在使用Inputform的视图中使用了这个实现,每次重新加载都会丢失Inputform中的指针 请问有没有办法,Javascript如何在不使用按钮的情况下从控制器调用函数,或者如何在不丢失文本输入的指针的情况下重新加载部分页面 我尝试了window.location.replace(“站点/自动刷新”);但它刷新了整个站点,而不是PJAX的一部分 这是我的代码:来自控制器的YII2 PJAX和javascript函数调用操作,javascript,yii2,pjax,Javascript,Yii2,Pjax,我实现了下面的时间自动刷新示例。(仅间隔函数设置为1秒) 我在使用Inputform的视图中使用了这个实现,每次重新加载都会丢失Inputform中的指针 请问有没有办法,Javascript如何在不使用按钮的情况下从控制器调用函数,或者如何在不丢失文本输入的指针的情况下重新加载部分页面 我尝试了window.location.replace(“站点/自动刷新”);但它刷新了整个站点,而不是PJAX的一部分 这是我的代码: <?php $form = ActiveForm::begin(
<?php $form = ActiveForm::begin(['id' => 'my-form']);
echo $form->field($model,'ipadress')->textInput((['id'=>'ipadress'])); $model->text = $text;
echo $form->field($model, 'text')->textArea(['rows' => '6','readonly' => 'true']);
echo Html::submitButton('Submit',['class'=>'btn btn-primary']) ?>
<?php ActiveForm::end(); ?>
<?php Pjax::begin(); ?>
<?= Html::a("Refresh", ['site/auto-refresh'], ['class' => 'btn btn-lg btn-primary', 'id' => 'refreshButton',]) ?>
<h1>Current time: <?= $time ?></h1>
<?php Pjax::end(); ?>
<?php
$script = <<< JS
$(document).ready(function() {
setInterval(function(){ $("#refressetIntervalhButton").click(); }, 1000);
});
JS;
$this->registerJs($script);
?>
多谢各位
MK请对两者使用一个控制器操作,并将时间作为公共属性添加到您的模型中 控制器
public function actionTest()
{
$model = new Test();
$model->time = date('H:i:s');
return $this->render('TestView', ['model' =>$model]);
}
查看
<?php Pjax::begin(); ?>
<?= Html::a("Refresh", ['site/test'], ['class' => 'btn btn-lg btn-primary', 'id' => 'refreshButton',]) ?>
<h1>Current time: <?= $model->time ?></h1>
<?php Pjax::end(); ?>
并直接在视图中使用时间变量。请对两者使用一个控制器操作,并将时间作为公共属性添加到模型中 控制器
public function actionTest()
{
$model = new Test();
$model->time = date('H:i:s');
return $this->render('TestView', ['model' =>$model]);
}
查看
<?php Pjax::begin(); ?>
<?= Html::a("Refresh", ['site/test'], ['class' => 'btn btn-lg btn-primary', 'id' => 'refreshButton',]) ?>
<h1>Current time: <?= $model->time ?></h1>
<?php Pjax::end(); ?>
在视图中直接使用时间变量。在设置间隔函数上使用ajax调用。我不确定是否理解。您的意思是不使用PJAX而是像这样使用AJAX:setInterval(ajaxCall,1000);函数ajaxCall(){和call URL request???}我可以试试。但我也可以试试,但指针不会丢失。请在控制器中保留窗体操作和时间操作,就像在设置间隔函数上使用sameuse ajax调用一样。我不确定是否理解。您的意思是不使用PJAX而是像这样使用AJAX:setInterval(ajaxCall,1000);函数ajaxCall(){和调用URL请求???}我可以尝试。但是我尝试了相同的方法,但是指针不会丢失。请在控制器中保持窗体操作和时间操作相同。请检查我的代码更新,当时间更新时,我从文本区丢失了指针。例如,我写IP地址,当时间重新加载时,我丢失了标记或指针(我不确定什么是正确的术语),所以我只写了部分IP地址。请检查我的代码更新,当时间更新时,我从文本区域丢失了指针。例如,我写IP地址,当时间重新加载时,我丢失了标记或指针(我不确定什么是正确的术语),所以我只写IP地址的一部分。
return $this->render('TestView', ['model' => $model,'time'=>date('H:i:s')]);