表单提交后保持在相同的页面位置没有在php中的ajax

时间:2014-09-16 10:19:56

标签: php html yii

我使用表单发布方法上传图片。

$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。 请帮助我或提出一些建议来实现这个场景。 或者表格帖子不可能。

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

如果是,则在提交后显示您的图片表单,然后在页面底部添加此代码: 如果没有,则为任何div分配一个id,并将upload-form更改为以下代码中的

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

答案 2 :(得分:1)

简短的回答是否。

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

答案 3 :(得分:1)

我发现最简单的方法是: -

在view.php中将id分配给html div标签,就像我已经分配了“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 
    ) );
}