Mostra o total de registro numa div

Olá pessoal, sou novo aqui no forum do Yii

mais jah fiz bastante coisas no sistema, meu problema é pra exibir o total de registro depois que selecionar uma data no form, é tipo: exibir o total de pessoa agendada naquela data usando o datepicker…

tem como fazer com on change no input do datepicker ???

ai faria o select no controller retornando o valor total, e exibindo numa div.

Olá Luan,

É possível sim fazer o que você imaginou, abaixo segue um exemplo:

Javascript em sua View para o envio da requisição:





<?php


Yii::app()->clientScript->registerCoreScript('jquery');

Yii::app()->clientScript->registerCoreScript('jquery.ui');

Yii::app()->clientScript->registerScript("jsMenuManager","




	$('#dataPickerField').change(function(){


		$.ajax({

			type: 'POST',

			url: '".Yii::app()->createUrl('suaController/totalAgendamentos')."',

			data: { date: $(this).val() }

		}).done(function(content){

			$('#divTotalAgendamentos').html(content);


		});


	});




", CClientScript::POS_LOAD);




Ajuste as permissões em sua Controller para receber a ação "totalAgendamentos":





/**

* Specifies the access control rules.

* This method is used by the 'accessControl' filter.

* @return array access control rules

*/


	public function accessRules()

	{

		return array(




			array('allow', /

				'actions'=>array('totalAgendamentos'),

			),


			array('deny',  // deny all users

				'users'=>array('*'),

			),


		);

	}




O método "totalAgendamentos" em sua Controller:





	/**

	 * @name actionTotalAgendamentos()

	 * @internal Responde a requisição ajax para retornar total de agendamentos

	 * @param string $date

	 * @return integer

	 */


	public function actionTotalAgendamentos(){


	    	// ACEITA APENAS REQUISIÇÕES EM AJAX

	    	if (Yii::app()->request->isAjaxRequest) {


                   echo Agendamento::model()->count('data_agendamento LIKE :date', array(':date'=>$_POST['date']);


		}

	}




Vlw Davi Crystal, deu certo aqui :D :D :D , só coloquei um ECHO no “public function actionTotalAgendamentos()”

pois não estava retornando o valor…

Este exemplo mim ajudou bastante, vou tbm utilizar para fazer um calculo de data pegando um numero e somando com a data.

Aproveitando o topic sobre DATA, eu configurei no main.php a date format




'format' => array (

	'datetimeFormat'=>"d M, Y h:m:s a",

),



e no datepicker estava dd/mm/yy, só q no banco fica 0000-00-00, eu dei uma olhada sobre esse assunto ñ conseguir fazer funfar aqui…

Alguem tem uma explicação mais clara ???

Olá Luan!

Realmente faltou o "echo"… me desculpe! Sobre sua nova dúvida o ideal é sempre trabalhar com o padrão YYYY-MM-DD esse é o padrão geral para datas em base de dados, se você não informar esse padrão ao inserir um registro o dado que será gravado como 0000-00-00, então antes de tudo sugiro que sempre trabalhe com o formato padrão. Porém em seu caso específico existe uma "manobra técnica avançada", popularmente conhecida com gambiarra, segue abaixo:

CONSIDERANDO QUE O SEU DATA PICKER SEMPRE RETORNA dd/mm/yy, então:





$arrayDate = explode("/", $strDateDataPicker);

$strDate = "20" . $arrayDate[2] . "-" . $arrayDate[1] . "-" . $arrayDate[0];




Abs e Feliz Programação

Obrigado mais uma vez,

esse era meu 2º plano, mais pensei q o Yii tinha uma solução para isto…

Vlw ae!

Luan,

Outra solução (do yii rs), considerando que você definiu o language como pt_br no protected/main.php:




$strDate = date('Y-m-d', CDateTimeParser::parse($strDate, Yii::app()->locale->dateFormat));