redhat2
پنج شنبه 08 اسفند 1392, 23:29 عصر
سلام به دوستان من این کد ها را نوشتم :
class UploaderController extends Controller {
public function actionIndex() {
$model = new UploaderForm();
$this->render('index', array('model' => $model));
}
public function actionAjax() {
$model = new UploaderForm();
if (isset($_POST['UploaderForm'])) {
$model->file = $_POST['UploaderForm']['file'];
if ($model->validate()) {
echo CJSON::encode(array('saeed' => $model->getError('file')));
}
}
}
}
uploadform :
class UploaderForm extends CFormModel {
public $file;
public function rules() {
return array(
array(
'file', 'file', 'allowEmpty' => true, 'types' => 'jpg'
)
);
}
}
?>
index.php :
/* @var $this UploaderController */
$form = $this->beginWidget('CActiveForm', array(
'id' => 'uploader-form',
'enableAjaxValidation' => false,
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
'validateOnChange' => false,
),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
));
?>
<div class="row">
<?php echo $form->labelEx($model, 'file'); ?>
<?php echo $form->fileField($model, 'file'); ?>
<?php echo $form->error($model, 'file'); ?>
</div>
<div class="row">
<?php
echo CHtml::ajaxSubmitButton('click', $this->createUrl('uploader/ajax'), array(
'type' => 'Post',
'dataType' => 'json',
'data' => array(
'UploaderForm[file]' => "js:$('#UploaderForm_file').val()",
),
'success' => 'function(result){
alert(result.saeed);
}'
));
?>
</div>
<?php
$this->endWidget();
?>
حالا 2 تا مشکل دارم اول اینکه validate که در Controller صدا زدم کار نمیده یعنی من فایلی با پسوند pdf را می فرستم سمت سرور که در این حالت جواب validate باید منفی باشه و ارور مربوطه را به من بده که نمیده null بر میگردونه دوما اینکه من وقتی که به این صورت در متد کنترلر عمل می کنم ،
$model->attributes = $_POST['UploaderForm'];
هیچی set نمیشه که بخواد validate بشه برای همین من در index اومد و در قسمت ajaxoption ، دیتا را اونطوری تعریف کردم ولی باز فایده نداره و اصلا هیچی validation انجام نمیشه میدونید مشکل کجاست ؟ ممنون میشم کمک کنین .
class UploaderController extends Controller {
public function actionIndex() {
$model = new UploaderForm();
$this->render('index', array('model' => $model));
}
public function actionAjax() {
$model = new UploaderForm();
if (isset($_POST['UploaderForm'])) {
$model->file = $_POST['UploaderForm']['file'];
if ($model->validate()) {
echo CJSON::encode(array('saeed' => $model->getError('file')));
}
}
}
}
uploadform :
class UploaderForm extends CFormModel {
public $file;
public function rules() {
return array(
array(
'file', 'file', 'allowEmpty' => true, 'types' => 'jpg'
)
);
}
}
?>
index.php :
/* @var $this UploaderController */
$form = $this->beginWidget('CActiveForm', array(
'id' => 'uploader-form',
'enableAjaxValidation' => false,
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
'validateOnChange' => false,
),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
));
?>
<div class="row">
<?php echo $form->labelEx($model, 'file'); ?>
<?php echo $form->fileField($model, 'file'); ?>
<?php echo $form->error($model, 'file'); ?>
</div>
<div class="row">
<?php
echo CHtml::ajaxSubmitButton('click', $this->createUrl('uploader/ajax'), array(
'type' => 'Post',
'dataType' => 'json',
'data' => array(
'UploaderForm[file]' => "js:$('#UploaderForm_file').val()",
),
'success' => 'function(result){
alert(result.saeed);
}'
));
?>
</div>
<?php
$this->endWidget();
?>
حالا 2 تا مشکل دارم اول اینکه validate که در Controller صدا زدم کار نمیده یعنی من فایلی با پسوند pdf را می فرستم سمت سرور که در این حالت جواب validate باید منفی باشه و ارور مربوطه را به من بده که نمیده null بر میگردونه دوما اینکه من وقتی که به این صورت در متد کنترلر عمل می کنم ،
$model->attributes = $_POST['UploaderForm'];
هیچی set نمیشه که بخواد validate بشه برای همین من در index اومد و در قسمت ajaxoption ، دیتا را اونطوری تعریف کردم ولی باز فایده نداره و اصلا هیچی validation انجام نمیشه میدونید مشکل کجاست ؟ ممنون میشم کمک کنین .