Yii Framework Forum: Dropdown check - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Dropdown check Rate Topic: -----

#1 User is offline   sbslord 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 26-March 12

Posted 27 March 2012 - 12:57 AM

Azt szeretném elérni hogy amikor kiválaszják az évet,hónapot,napot akkor a rules ellenőrizze le hogy helyes e a dátum, ha nem akkor a nap alá meg írja hogy Helytelen dátum.

Elvileg ezzel azt kellene csinálnia hogy ha megváltozik a bármelyik mező akkor lefutatja a Checkdate függvényt.
public function rules()
	{
		return array(
				array('born_year_id,born_month_id,born_day_id', 'numerical', 'integerOnly'=>true),
				array('born_year_id,born_month_id,born_day_id', 'Checkdate'),
		);
	}


Ez maga a Checkdate függvény
public function Checkdate($attribute,$params)
	{
		if(!checkdate($this->born_month_id,$this->born_day_id,$this->born_year_id)){
			$this->addError('born_day_id','Helytelen dátum!.');
		}
	}


Ez meg a form egy része

<div class="row">
		<h6>Születésnapod</h6>
		<?php echo $form->label($model,'born_year_id'); ?>
		<?php echo $form->dropDownList($model,'born_year_id', $model->getBornYearOptions(), array('prompt'=>Yii::t('layout','Kérlek válasz valamit!'))); ?>
		<?php echo $form->error($model,'born_year_id'); ?>
		
		<?php echo $form->label($model,'born_month_id'); ?>
		<?php echo $form->dropDownList($model,'born_month_id', $model->getBornMonthOptions(), array('prompt'=>Yii::t('layout','Kérlek válasz valamit!'))); ?>
		<?php echo $form->error($model,'born_month_id'); ?>
		
		<?php echo $form->label($model,'born_day_id'); ?>
		<?php echo $form->dropDownList($model,'born_day_id', $model->getBornDayOptions(), array('prompt'=>Yii::t('layout','Kérlek válasz valamit!'))); ?>
		<?php echo $form->error($model,'born_day_id'); ?>
	</div>


Igazából a legjobb az lenne ha lenne egy dátumkiválasztó mező egyből és nem nekem kellene megírni.
+rules ba kellene egy olyan is ami leellenőrzi hogy egyáltalán van a select ha meg nincs írja ki hogy Válasz valamit.
0

#2 User is offline   kiskp 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 05-January 10
  • Location:Hungary

Posted 27 March 2012 - 01:48 AM

View Postsbslord, on 27 March 2012 - 12:57 AM, said:

Azt szeretném elérni hogy amikor kiválaszják az évet,hónapot,napot akkor a rules ellenőrizze le hogy helyes e a dátum, ha nem akkor a nap alá meg írja hogy Helytelen dátum.
...
Igazából a legjobb az lenne ha lenne egy dátumkiválasztó mező egyből és nem nekem kellene megírni.
+rules ba kellene egy olyan is ami leellenőrzi hogy egyáltalán van a select ha meg nincs írja ki hogy Válasz valamit.


Szia,
Nem igazán értem miért van erre szükség, vagy hogy pontosan mit szeretnél. Eleve a dropDownList-et nyilván csak olyan adatokkal töltöd fel, amit ki lehet választani. Ha az a lényeg, hogy ne lehessen egyik select-et (év/hónap/nap) sem üresen elküldeni, akkor símán egy required rule kell neki, és hogy nem lehet üres.

Egyébiránt meg használhatnád a CJuiDatePicker-t is: http://www.yiiframew.../CJuiDatePicker
0

#3 User is offline   gyz 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 17-March 11

Posted 27 March 2012 - 02:06 AM

View Postkiskp, on 27 March 2012 - 01:48 AM, said:

Szia,
Nem igazán értem miért van erre szükség, vagy hogy pontosan mit szeretnél. Eleve a dropDownList-et nyilván csak olyan adatokkal töltöd fel, amit ki lehet választani. Ha az a lényeg, hogy ne lehessen egyik select-et (év/hónap/nap) sem üresen elküldeni, akkor símán egy required rule kell neki, és hogy nem lehet üres.

Egyébiránt meg használhatnád a CJuiDatePicker-t is: http://www.yiiframew.../CJuiDatePicker


Sziasztok,

Gondolom az a probléma, hogy ki lehet választani pl. a febr. 31-et, de tényleg felesleges a modelben ezt ellenőrizni, én is a CJuiDatePicker -t javaslom. Ha csak nem a megrendelőnek kifejezett kivánsága a dropbownlist. (nálam volt ilyen eset, hogy billentyűvel tudja kezelni a formot, ne kelljen egérrel odakattintani)
Ha egyedi validáció kell, akkor jó amit csináltál, mi vele a gond?

Create your own Validation Rule
0

#4 User is offline   sbslord 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 26-March 12

Posted 27 March 2012 - 02:12 AM

View Postgyz, on 27 March 2012 - 02:06 AM, said:

Sziasztok,

Gondolom az a probléma, hogy ki lehet választani pl. a febr. 31-et, de tényleg felesleges a modelben ezt ellenőrizni, én is a CJuiDatePicker -t javaslom. Ha csak nem a megrendelőnek kifejezett kivánsága a dropbownlist. (nálam volt ilyen eset, hogy billentyűvel tudja kezelni a formot, ne kelljen egérrel odakattintani)
Ha egyedi validáció kell, akkor jó amit csináltál, mi vele a gond?

Create your own Validation Rule


Hát csak annyi hogy nem csinál semmit.
Hiába váltogatom a regisztrációs oldalon az elemeket nem fut le a függvény váltás-ra.
Ezt a CJuiDatePicker-t hogy lehet elhelyezni egy view-ben.
pl nekem ilyen a view-em most.

<?php
$this->pageTitle=Yii::app()->name . ' - Regisztráció';
$this->breadcrumbs=array(
	'Regisztráció',
);
?>

<h1>Regisztráció</h1>

<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
	'id'=>'register-form',
	'enableClientValidation'=>true,
	'clientOptions'=>array(
		'validateOnSubmit'=>true,
	),
)); ?>

	<p class="note">A <span class="required">*</span> jelzett mezők kitöltése kötelező!.</p>

	<div class="row">
		<?php echo $form->labelEx($model,'username'); ?>
		<?php echo $form->textField($model,'username'); ?>
		<?php echo $form->error($model,'username'); ?>
	</div>
	
	<div class="row">
		<?php echo $form->label($model,'lastName'); ?>
		<?php echo $form->textField($model,'lastName'); ?>
		<?php echo $form->error($model,'lastName'); ?>
	</div>
	
	<div class="row">
		<?php echo $form->label($model,'firstName'); ?>
		<?php echo $form->textField($model,'firstName'); ?>
		<?php echo $form->error($model,'firstName'); ?>
	</div>
	
	<div class="row">
		<?php echo $form->label($model,'gender_id'); ?>
		<?php echo $form->dropDownList($model,'gender_id', $model->getGenderOptions(), array('prompt'=>Yii::t('layout','Kérlek válasz valamit!'))); ?>
		<?php echo $form->error($model,'gender_id'); ?>
	</div>
	
	<div class="row">
		<h6>Születésnapod</h6>
		<?php echo $form->label($model,'born_year_id'); ?>
		<?php echo $form->dropDownList($model,'born_year_id', $model->getBornYearOptions(), array('prompt'=>Yii::t('layout','Kérlek válasz valamit!'))); ?>
		<?php echo $form->error($model,'born_year_id'); ?>
		
		<?php echo $form->label($model,'born_month_id'); ?>
		<?php echo $form->dropDownList($model,'born_month_id', $model->getBornMonthOptions(), array('prompt'=>Yii::t('layout','Kérlek válasz valamit!'))); ?>
		<?php echo $form->error($model,'born_month_id'); ?>
		
		<?php echo $form->label($model,'born_day_id'); ?>
		<?php echo $form->dropDownList($model,'born_day_id', $model->getBornDayOptions(), array('prompt'=>Yii::t('layout','Kérlek válasz valamit!'))); ?>
		<?php echo $form->error($model,'born_day_id'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'password'); ?>
		<?php echo $form->passwordField($model,'password'); ?>
		<?php echo $form->error($model,'password'); ?>
	</div>
	
	<div class="row">
		<?php echo $form->labelEx($model,'password2'); ?>
		<?php echo $form->passwordField($model,'password2'); ?>
		<?php echo $form->error($model,'password2'); ?>
	</div>
	
	<div class="row">
		<?php echo $form->labelEx($model,'email'); ?>
		<?php echo $form->textField($model,'email'); ?>
		<?php echo $form->error($model,'email'); ?>
	</div>
	
	<div class="row">
		<?php echo $form->labelEx($model,'question'); ?>
		<?php echo $form->textField($model,'question'); ?>
		<?php echo $form->error($model,'question'); ?>
	</div>
	
	<div class="row">
		<?php echo $form->labelEx($model,'answer'); ?>
		<?php echo $form->textField($model,'answer'); ?>
		<?php echo $form->error($model,'answer'); ?>
	</div>
	
	<?php if(extension_loaded('gd')): ?>
	<div class="row">
		<?php echo $form->labelEx($model,'verifyCode'); ?>
        <div>
        <?php $this->widget('CCaptcha'); ?>
        <?php echo $form->textField($model,'verifyCode'); ?>
        </div>
	</div>
	<?php endif; ?>

	<div class="row buttons">
		<?php echo CHtml::submitButton('Regisztráció'); ?>
	</div>

<?php $this->endWidget(); ?>
</div><!-- form -->

0

#5 User is offline   sbslord 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 26-March 12

Posted 27 March 2012 - 04:35 AM

Végre sikerült megcsinálni.

<?php 
	echo $form->label($model,'publishDate');
	Yii::import('application.extensions.CJuiDatePicker.CJuiDatePicker');
	$this->widget('zii.widgets.jui.CJuiDatePicker', array(
        'name'=>'publishDate',
		// additional javascript options for the date picker plugin
		'options'=>array(
		'dateFormat'=>'yy-mm-dd',
        'showAnim'=>'fold',
		'changeMonth' => 'true',
        'changeYear'=>'true',
		'yearRange'=>'1900',
		),
		'htmlOptions'=>array(
        'style'=>'height:20px;'
		),
		 'language'=>'hu',
	));
?>


Ez a CJuiDatePicker tényleg szebb.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users