a pagina é a index.php, a gridView é renderizada na view "_ajaxGrid" a cada vez que o botão pesquisar é clicado disponivel na view "_consulta"(deixei o javascript na pagina para facilitar o entendimento do que ocorre). Seguem as tres:
index.php
<?php $this->pageTitle=Yii::app()->name; ?>
<div style="width: 100%; text-align: center;">
<h1><?php echo CHtml::encode(Yii::app()->name); ?></h1>
</div>
-->
<script>
var urlCompleta = $(location).attr('href');
var position = urlCompleta.indexOf('/index.php/');
var url = urlCompleta.substring(0, position);
function limpaGrid(){
$('#req_res02').html('');
$('#info').html('');
$('#matricula').val('');
$('#rs').val('');
$('#nome').val('');
$('#centro').val('');
$('#nome_centro').val('');
$('#info_rs').html('');
}
</script>
<div id="forms">
<?php $this->renderPartial('_consulta', null, !(VwMatEmpregado::podeBuscar(substr(Yii::app()->user->registro['registro'], 1)))); ?>
</div>
<br />
<div id="req_res02">
<?php $this->renderPartial('_ajaxGrid', array('funcionario'=>$funcionario, 'modelo'=>$modelo, 'msg'=>$msg)); ?>
</div>
_ajaxGrid
<?php
$session = Yii::app()->session;
$model = $session['modelo'];
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'person-grid2',
'dataProvider'=>$model->search(),
//'filter'=>$model,
//'cssFile'=> Yii::app()->baseUrl . '/css/ricardo.css',
//'htmlOptions' => array('class' => 'grid-view rounded'),
'pager'=>array(
'header'=>'',
'firstPageLabel'=>'<<',
'prevPageLabel'=>'anterior',
'nextPageLabel'=>'proximo',
'lastPageLabel'=>'>>',
),
'columns'=>array(
array(
'name' =>'funcionario.nr_rs',
'value' => '$data->funcionario->nr_rs',
),
'matricula_funcionario',
'nome',
'cdmatmcd',
'nmmcd',
'cdcautqem',
//'qtoriqem',
'qtqeqem',
//'nralmqem',
//'nrdocqem',
'dtdocqem',
),
));
_consulta
<div class="form1">
<?php echo CHtml::beginForm(); ?>
<div class="row">
<?php echo CHtml::label('Matricula', 'matricula'); ?>
<?php echo CHtml::textField(
'matricula',
"",
array(
'size'=>6,
'onclick'=>"limpaGrid();",
)
);
?>
<?php echo CHtml::textField(
'nome',
"",
array(
'size'=>30,
'readonly'=>'readonly',
)
);
?>
<?php echo CHtml::textField(
'centro',
"",
array(
'size'=>6,
'readonly'=>'readonly',
)
);
?>
<!--
$imghtml=CHtml::image('server/gallery/'.$data->gallery.'/th_'.$data->picturenumber.'.jpg', $data->picturenumber.'.jpg');
echo CHtml::link($imghtml, array('view', 'id'=>$data->id));
-->
</div>
<div id="info"></div>
<?php
echo CHtml::ajaxSubmitButton(
'Pesquisar',
array('site/ajaxGrid'),
array(
'update'=>'#req_res02',
)
);
//var_dump(VwMatEmpregado::classificaUser());
?>
<?php echo CHtml::endForm(); ?>
</div><!-- form -->
<div class="form2">
<?php echo CHtml::beginForm(); ?>
<div class="row">
<?php echo CHtml::label('RS', 'rs'); ?>
<?php echo CHtml::textField(
'rs',
"",
array(
'size'=>6,
'onclick'=>"limpaGrid();",
)
);
?>
<?php echo CHtml::textField(
'nome_centro',
"",
array(
'size'=>6,
'readonly'=>'readonly',
)
);
?>
<!--
$imghtml=CHtml::image('server/gallery/'.$data->gallery.'/th_'.$data->picturenumber.'.jpg', $data->picturenumber.'.jpg');
echo CHtml::link($imghtml, array('view', 'id'=>$data->id));
-->
</div>
<div id="info_rs"></div>
<?php
echo CHtml::ajaxSubmitButton(
'Pesquisar',
array('site/ajaxGrid'),
array(
'update'=>'#req_res02',
)
);
?>
<?php echo CHtml::endForm(); ?>
</div><!-- form -->
<script>
$('#rs').keyup(function(){
var dados = $("input[name='rs']");
var urlCompleta = $(location).attr('href');
var position = urlCompleta.indexOf('/index.php/');
var url = urlCompleta.substring(0, position);
//alert(dados.val());
if(dados.val().length > 4){
dados = $("input[name='rs']")
$.ajax({
//Tipo do envio das informações GET ou POST
type: 'post',
//url para onde será enviada as informações digitadas
url: url + '/index.php/site/ajaxMatricula',
/*
* Parâmetros que serão carregados para a url selecionada (via POST).
* o form serialize passa de uma só vez todas as informações que estão
* dentro do formulário. Facilita, mas pode atrapalhar quando não for
* aplicado adequadamente a sua aplicação
*/
data: dados,
beforeSend: function(){
/*
* Ação que será executada após o envio, no caso, chamei um gif
* loading para dar a impressão de garregamento na página
*/
$('#loading').fadeIn(); },
//function(data) vide item 4 em $.get $.post
success: function(data){
//Tratamento dos dados de retorno.
//alert(data);
var info = eval(data);
if(info[0].rs != null){
$('#nome_centro').val(info[0].descricao);
}
},
//Se acontecer algum erro é executada essa função
error: function(erro){
$('#loading').fadeOut();
$('#erroCadastro').fadeIn();
}
});
}
});
$('#matricula').keyup(function(){
var urlCompleta = $(location).attr('href');
var dados = $("input[name='matricula']");
var position = urlCompleta.indexOf('/index.php/');
var url = urlCompleta.substring(0, position);
if(dados.val().length > 4){
dados = $("input[name='matricula']")
$.ajax({
//Tipo do envio das informações GET ou POST
type: 'post',
//url para onde será enviada as informações digitadas
url: url + '/index.php/site/ajaxMatricula',
/*
* Parâmetros que serão carregados para a url selecionada (via POST).
* o form serialize passa de uma só vez todas as informações que estão
* dentro do formulário. Facilita, mas pode atrapalhar quando não for
* aplicado adequadamente a sua aplicação
*/
data: dados,
beforeSend: function(){
/*
* Ação que será executada após o envio, no caso, chamei um gif
* loading para dar a impressão de garregamento na página
*/
$('#loading').fadeIn(); },
//function(data) vide item 4 em $.get $.post
success: function(data){
//Tratamento dos dados de retorno.
var info = eval(data);
if(info[0].nome != null){
//$('#info').html(info[0].matricula + ' - ' + info[0].nome + ' - ' + info[0].rs);
$('#req_res02').html('');
$('#nome').val(info[0].nome);
$('#centro').val(info[0].rs);
}
},
//Se acontecer algum erro é executada essa função
error: function(erro){
$('#loading').fadeOut();
$('#erroCadastro').fadeIn();
}
});
}
});
$(':submit').click(function(){
var urlCompleta = $(location).attr('href');
var position = urlCompleta.indexOf('/index.php/');
var url = urlCompleta.substring(0, position);
$('#req_res02').html('<br /><br /><br /><br /><br /><br /><br /><br /><center><img src="'+url+'/images/ajax-loader.gif" /></center>');
});
</script>