【发布时间】:2015-11-25 06:47:11
【问题描述】:
我有一个搜索模块,用户在 CJuiDatePicker 中选择日期。 当我单击提交时,页面将加载但我的日期选择器中的日期将消失。我怎样才能保留我的领域中的价值? 值的搜索很好。它正在返回正确的数据。但是字段中的值消失了。有人可以帮忙吗?
我的表格中有这个。
<div class="panel-body">
<?php
$form = $this->beginWidget( 'CActiveForm',
array( 'id' => 'search-form',
'action' => array('index'),
'enableAjaxValidation'=>true,
'enableClientValidation' => true,
'clientOptions' => array('validateOnSubmit' => true),
'htmlOptions' => array(
'class' => 'form-horizontal',
'onsubmit' => '
return !(document.getElementById(\'to\').disabled) &&
!(document.getElementById(\'from\').value == \'\') &&
!(document.getElementById(\'to\').value == \'\');'
))
);
?>
<form>
<div class="form-group"><label>Date From</label>
<?php
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $model,
'name' => 'start_date',
'options'=>array(
'dateFormat'=>'yy-mm-dd',
),
'htmlOptions'=>array(
'class'=>'form-control',
'placeholder'=>'From',
'value' => $search_date_start,
),
));
?>
</div>
<div class="form-group"><label>To</label>
<div class="controls" style='margin-top: 5px;'>
<?php
$end_date = date('m-d-Y');
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $model,
'name' => 'end_date',
'options'=>array(
'dateFormat'=>'yy-mm-dd',
),
'htmlOptions'=>array(
'class'=>'form-control',
'placeholder'=>'To',
'value' => $search_date_end,
),
));
?>
</div>
</div>
<div class="form-group"> <label>Employee Name</label>
<div class="controls" style='margin-top: 5px;'>
<?php
$form->widget('zii.widgets.jui.CJuiAutoComplete', array('name' => 'search',
'source' => Evaluation::searchEvaluation(),
'htmlOptions' => array('class' => 'form-control', 'placeholder' => 'Search'),
'options' => array(
),
'value' => $search,
));
?>
</div>
</div>
<div class="form-group">
<input type="submit" name='search_btn' value="Search" class='btn btn-primary '>
<input type="submit" name='reset_btn' value="Reset" class='btn btn-default '>
</div>
</form>
<?php $this->endWidget();?>
</div>
这是我的控制器代码:
class EvaluationController extends Controller {
public function actionIndex()
{
Helper_Site::initializePage();
LoginForm::checkLogin();
$user = LoginForm::getUser();
if($user->username == $user->company_id){
Yii::app()->getController()->redirect(array("site/initiallogin"));
}else{
$model = new EvaluationDetails('search');
$model->unsetAttributes(); // clear any default values
if (isset($_GET['EvaluationDetails'])) {
$model->attributes = $_GET['EvaluationDetails'];
}
$modelE = new Evaluation('search');
$modelE->unsetAttributes(); // clear any default values
if (isset($_GET['Evaluation'])) {
$modelE->attributes = $_GET['Evaluation'];
}
//start here
$search = '';
//SEARCH BTN
if(isset($_POST['search_btn'])) {
if (isset($_POST['start_date'])) {
$search = $_POST['search'];
Yii::app()->session['search_evaluation'] = $search;
$search_date_start = '';
$search_date_end = '';
} else {
if (isset($_POST['start_date']) && isset($_POST['end_date'])) {
$search_date_start = $_POST['start_date'];
$search_date_end = $_POST['end_date'];
Yii::app()->session['start_date_evaluation'] = $search_date_start;
Yii::app()->session['end_date_evaluation'] = $search_date_end;
} else {
var_dump("no start_date and no end_date passed");
if (count(Evaluation::model()->findAll()) == 0) {
$search_date_start = date('Y-m-d', strtotime("-1 month"));
$search_date_end = date('Y-m-d');
} else {
$criteria = new CDbCriteria();
$criteria->order = "start_date ASC";
$search_date_start = date("Y-m-d", strtotime(Evaluation::model()->find($criteria)->start_date));
$criteria->order = "end_date DESC";
$search_date_end = date("Y-m-d", strtotime(Evaluation::model()->find($criteria)->start_date));
}
}
/*if (isset($_POST['search'])) {
$search = $_POST['search'];
Yii::app()->session['search_evaluation'] = $search;
}*/
}
}// RESET BTN
else if (isset($_POST['reset_btn'])) {
unset(Yii::app()->session['start_date_evaluation']);
unset(Yii::app()->session['end_date_evaluation']);
unset(Yii::app()->session['search_evaluation']);
$search_date_start = date('Y-m-d', strtotime("-1 month"));
$search_date_end = date('Y-m-d');
} else {
if (isset(Yii::app()->session['start_date_evaluation']) && isset(Yii::app()->session['end_date_evaluation'])) {
$search_date_start = Yii::app()->session['start_date_evaluation'];
$search_date_end = Yii::app()->session['end_date_evaluation'];
if (isset(Yii::app()->session['search_evaluation'])) {
$search = Yii::app()->session['search_evaluation'];
}
} else {
unset(Yii::app()->session['start_date_evaluation']);
unset(Yii::app()->session['end_date_evaluation']);
unset(Yii::app()->session['search_evaluation']);
$search_date_start = date('Y-m-d', strtotime("-1 month"));
$search_date_end = date('Y-m-d');
}
} //end here
$this->render('index', array('model' => $model, 'modelE' => $modelE, 'search_date_start' => $search_date_start, 'search_date_end' => $search_date_end, 'search' => $search));
}
}
【问题讨论】:
-
$search_date_start的值是多少?尝试删除'value' => $search_date_end,和'value' => $search_date_start, -
值来自控制器。我需要这个才能正确搜索。
-
@lilitDM 这些变量的值是什么,如果发布后值为空白,则文本框将为空白,您可以发布您的控制器代码吗?
-
我已经编辑了我的帖子并添加了我的控制器。感谢您回复@ChetanAmeta
-
这里在第一个
if条件$search_date_start = ''; $search_date_end = '';是空白的,这就是它显示空白的原因,尝试在这些变量中输入一些值,然后检查天气修改值是否显示在那里?
标签: javascript php jquery yii