Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自控制器的YII2 PJAX和javascript函数调用操作_Javascript_Yii2_Pjax - Fatal编程技术网

来自控制器的YII2 PJAX和javascript函数调用操作

来自控制器的YII2 PJAX和javascript函数调用操作,javascript,yii2,pjax,Javascript,Yii2,Pjax,我实现了下面的时间自动刷新示例。(仅间隔函数设置为1秒) 我在使用Inputform的视图中使用了这个实现,每次重新加载都会丢失Inputform中的指针 请问有没有办法,Javascript如何在不使用按钮的情况下从控制器调用函数,或者如何在不丢失文本输入的指针的情况下重新加载部分页面 我尝试了window.location.replace(“站点/自动刷新”);但它刷新了整个站点,而不是PJAX的一部分 这是我的代码: <?php $form = ActiveForm::begin(

我实现了下面的时间自动刷新示例。(仅间隔函数设置为1秒)

我在使用Inputform的视图中使用了这个实现,每次重新加载都会丢失Inputform中的指针

请问有没有办法,Javascript如何在不使用按钮的情况下从控制器调用函数,或者如何在不丢失文本输入的指针的情况下重新加载部分页面

我尝试了window.location.replace(“站点/自动刷新”);但它刷新了整个站点,而不是PJAX的一部分

这是我的代码:

<?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')]);