在php中没有ajax的情况下提交表单后,保持在同一页面位置


Staying on the same page location after form submit without ajax in php

我正在使用form-post方法上传图像。

$form = $this->beginWidget(
            'CActiveForm',
             array(
                'id' => 'upload-form',
                'enableAjaxValidation' => false,
                'action'=>Yii::app()->createUrl('/admin/user/uploadimage'),
                'htmlOptions' => array('enctype' => 'multipart/form-data')
             ));
            echo $form->fileField($model, 'image');
            echo CHtml::submitButton('Upload');
            $this->endWidget();

上传图像后,页面会被刷新,并显示页面顶部。提交表单时,是否有可能将页面限制在视图中的同一位置,而不使用ajax。请帮助我或提出一些建议来实现该场景。或者这是不可能的形式张贴。

如果您不想使用ajax,也可以使用CURL。以下是链接:)

http://php.net/manual/en/book.curl.php

提交后是否显示图像表单如果是,则在页面底部添加以下代码:如果没有,那么为任何div分配一个id,并将上传表单更改为下面代码中的表单

<?php
   if(isset($_FILES["image"]["type"])){
?>
<script type="text/javascript">
   window.location='#upload-form';
</script>
<?php   
}?>

简短的答案是否定的。

长期的答案可能是:-)如果没有Ajax,您将需要进行完整的页面刷新,尽管您可以将用户发送到图像上传部分。但是,如果您不想刷新页面,tou将需要使用Ajax。

我找到的最简单的方法是:-

在view.php中,将id分配给htmldiv标签,就像我分配了"image section"一样

<div id ="image-section"
    <?php $form = $this->beginWidget(
        'CActiveForm',
         array(
            'id' => 'upload-form',
            'enableAjaxValidation' => false,
            'action'=>Yii::app()->createUrl('/admin/user/uploadimage'),
            'htmlOptions' => array('enctype' => 'multipart/form-data')
         ));
        echo $form->fileField($model, 'image');
        echo CHtml::submitButton('Upload');
        $this->endWidget();?>
</div>

现在在控制器中附加#id和url。

public function actionUploadImage()
{
//You code
 $scrollLocation = "#image-section"
 $this->redirect ( "index$scrollLocation", array (
            'model' => $model 
    ) );
}