我使用表单发布方法上传图片。
$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。 请帮助我或提出一些建议来实现这个场景。 或者表格帖子不可能。
答案 0 :(得分:3)
如果您不想使用ajax,也可以使用CURL。 以下链接:)
答案 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
) );
}