CJuiDatePicker

puse este código en la vista y la cargo la página pero no me sale ningún error, tampoco me sale el DatePicker para seleccionar la fecha:




	<div class="row">

		<?php echo $form->labelEx($model,'evento_fecha_inicio'); ?>

		<?php $this->widget('zii.widgets.jui.CJuiDatePicker',array(

			'model'=>$model,

			'attribute'=> 'evento_fecha_inicio',

			'options'=> array(

				'ampm' => true,

				'showOn' => 'button',

				'showAnim' => 'fold',

				'timeOnly' => true,

			),

		)); ?>

		<?php echo $form->error($model,'evento_fecha_inicio'); ?>

	</div>



Obviamente lo que quiero conseguir es seleccionar la fecha y hora a traves de un datepicker.

Me pueden decir ¿cuál es el problema?

Gracias por su colaboración de antemano

Saludos

el codigo yo lo veo bien, debe ser un problema de que no estes poniendo el script de jquery…pero esperemos que dicen los expertos… yo soy newbie, y tengo un problema con CJuiDatePicker, pero el mio es que no guarda en la base de datos la fecha seleccionada

tu codigo fue puesto en un esqueleto de codigo nuevo y funcionó bien.

la causa de tu error puede ser debida a muchas cosas de tu parte. será dificil saberlo sin mayor información de tu parte.

para depurar en tu maquina:

1.usa chrome o firefox y lanza la herramienta de depuración, sea cual sea: firebug o control+shift+i en chrome. aqui se espera que aparezca un error de javascript. cual es ese error ?

2.limpia tu directorio de assets, y recarga tu pagina de datepicker, pruebas de nuevo.

3.si el error persiste tras limpieza de assets, abre la pagina de tu datepicker, dale ver codigo fuente y comprueba que puedes abrir todas las referencias a scripts que yii generó dentro. normalmente estos son recursos javascript que -deben- abrirse, todos, incluyendo js y css.

4.si todos los scripts y css abren perfectamente, y tu error persiste, verifica que no hayas manipulado el CJuiDatePicker en tu archivo config, de haberlo hecho encierra este setup en comentario y prueba de nuevo.

5.si todo esto falla, crea un nuevo esqueleto de codigo yii, en blanco, y sigue estos pasos, deberás ver el datepicker:

para crear un esqueleto en blanco de yii en d:/code/tudirectorio/ :

rutayiiframework/yiic.bat webapp d:/code/tudirectorio

en el directorio creado, dentro de protected/models/ crea un archivo ModeloPrueba.php con lo siguiente:




<?php class ModeloPrueba extends CFormModel {

	public $evento_fecha_inicio='2012/06/08';

	public function rules(){

		return array(

			array('evento_fecha_inicio','safe'),

		);

	}

	public function attributeLabels(){

		return array(

			'evento_fecha_inicio'=>'Inicio del Evento',

		);

	}

}

?>



dentro de protected/views/site/ crea un archivo datepicker.php con lo siguiente:




<?php echo "Prueba Datepicker. model.evento_fecha_inicio=".$model->evento_fecha_inicio; ?>

<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'datepicker-form',

)); ?>

<div class="row">

	<?php echo $form->labelEx($model,'evento_fecha_inicio'); ?>

	<?php 

		$this->widget('zii.widgets.jui.CJuiDatePicker',array(

			'model'=>$model,

			'attribute'=> 'evento_fecha_inicio',

			'options'=> array(

					'ampm' => true,

					'showOn' => 'button',

					'showAnim' => 'fold',

					'timeOnly' => true,

			),

	)); 

	?>

	<?php echo $form->error($model,'evento_fecha_inicio'); ?>

</div>

<?php $this->endWidget(); ?>



finalmente, crea un simple action que llame la vista y muestre el datepicker: usa controllers/siteController.php , insertale lo siguiente:




public function actionTest(){

		

		$model = new ModeloPrueba();

		

		$this->render('datepicker',array('model'=>$model));

	}

}



para probar tu codigo:

http://localhost/tuapp/index.php?site/test

y deberia aparecer un datepicker.

como acotación extra a lo que puse arriba, si tu estas manipulando archivos JS directamente dentro de la misma pagina que aloja al datepicker entonces es probable que haya un conflicto. quita todas aquellas cosas raras de scripts y deja solo el datepicker, incluyendo otros widgets que no sean los estrictamente necesarios, ej: el form. A veces cuando combinas la automatizacion de scripts de Yii con tus propios scripts e inclusiones de jquery entonces causas problemas que no permiten que tu script funcione. por eso te digo arriba el paso numero 1, para ver si el depurador del navegador detecta errores de script.

Gracias a todo, pero después de bastante tiempo encontré el error, por alguna misteriosa razón faltaban algunos archivos javascript de la carpeta de yii framework, pero bien raro porque yo nunca entré a modificar archivos que o sean de la aplicación web, habían muchos archivos faltantes *.js quizás algún virus.

Ahora todo me funciona a la perfección gracias.