Pessoal, bom dia!
Estive procurando alguma solução para meu problema em outros tópicos, porém não encontrei.
Bem, meu caso é o seguinte:
Tenho um CHtml::button que chama o método no controller, faz a busca no banco de acordo com parâmetros passados e imprime dois valores em campos hidden. Com esses valores eu uso javascript para jogar os dados nos inputs, porém necessito clicar duas vezes no botão para que ele funcione.
Com faria para ao clicar no botão ele ja busque os dados e já utilize o javascript para preencher os inputs sem a necessidade de clicar duas vezes no botão?
Existe alguma forma de vincular o botão ao controller e a um javascript em uma mesma ação? Como seria?
Dessa forma que estou fazendo está correta?
Segue o código até então:
_form.php
<div class="row">
<?Php
Yii::app()->clientScript->registerScript('bt',"
$(document).ready(function() {
$('#Requisicao_requisicao_terceiro_0').click(function(){
$('.requisicao_terceiro').show();
})
$('#Requisicao_requisicao_terceiro_1').click(function(){
$('.requisicao_terceiro').hide();
})
$('#yt0').click(function(){
var primeirainicial = 0+$('#primeira_requisicao_inicial').val();
var primeirafinal = 0+$('#primeira_requisicao_final').val();
var proximainicial = 0+$('#Requisicao_proxima_requisicao_inicial').val();
var proximafinal = 0+$('#Requisicao_proxima_requisicao_final').val();
var seriesdisponiveis = $('#series_disponiveis').val();
var quantidadefolhas = $('#Requisicao_qtde_folhas_requisicao').val();
var quantidadedisponivel = $('#quantidadedisponivel').val();
if(typeof proximainicial=='undefined' || typeof proximainicial=='undefined'){
var numinicialrequisicao = primeirainicial;
var numfinalrequisicao = primeirafinal;
}else{
var numinicialrequisicao = proximainicial;
var numfinalrequisicao = proximafinal;
}
$('#Requisicao_num_requisicao_inicial_medico').val(numinicialrequisicao);
$('#Requisicao_num_requisicao_final_medico').val(numfinalrequisicao);
$('#Requisicao_id_num_sequencial').val(seriesdisponiveis);
})
})",CClientScript::POS_READY);
echo CHtml::label('Faixas | Séries | Quantidades Disponíveis', 'series_disponiveis');
//empty since it will be filled by the other dropdown
echo CHtml::dropDownList('series_disponiveis','', array('empty' => 'Escolha um Tipo de Receita',
));
echo CHtml::button('Buscar', array(
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('Requisicao/buscaultimo'),
'update' => '#param_id',
)
));
?>
</div>
<div id="param_id" class="row">
</div>
<div class="row">
<?php echo $form->labelEx($model,'num_requisicao_inicial_medico'); ?>
<?php echo $form->textField($model,'num_requisicao_inicial_medico', array('readonly' => true, 'size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />); ?>
<?php echo $form->error($model,'num_requisicao_inicial_medico'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'num_requisicao_final_medico'); ?>
<?php echo $form->textField($model,'num_requisicao_final_medico', array('readonly' => true, 'size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />); ?>
<?php echo $form->error($model,'num_requisicao_final_medico'); ?>
</div>
RequisicaoController.php
public function actionbuscaultimo() {
$parametro = ((int) $_POST['Requisicao']['qtde_folhas_requisicao']);
$parametro2 = (int)$_POST['series_disponiveis'];
// dd($parametro);
// $posts = Requisicao::model()->findBySql("SELECT (MAX(req.num_requisicao_final_medico)+1) as nova_requisicao_inicial, (MAX(req.num_requisicao_final_medico)+:keyword) as nova_requisicao_final
// FROM
// sch_scspm.tb_num_sequencial ns, sch_scspm.tb_requisicao req
// WHERE
// ns.id_num_sequencial = req.id_num_sequencial
//
// AND
// ns.id_num_sequencial = :keyword2", array(':keyword' => $parametro, ':keyword2' => $parametro2));
//
$posts = Requisicao::model()->findBySql("SELECT (MAX(req.num_requisicao_final_medico)+1) as proxima_requisicao_inicial, (MAX(req.num_requisicao_final_medico)+:keyword) as proxima_requisicao_final,
ns.num_sequencial_inicial as primeira_requisicao_inicial, ns.num_sequencial_inicial+:keyword-1 as primeira_requisicao_final
FROM
sch_scspm.tb_num_sequencial ns
LEFT JOIN sch_scspm.tb_requisicao req
ON
(ns.id_num_sequencial = req.id_num_sequencial)
WHERE
ns.id_num_sequencial = :keyword2
GROUP BY ns.num_sequencial_inicial, ns.num_sequencial_final", array(':keyword' => $parametro, ':keyword2' => $parametro2));
// var_dump($posts);
$posts->primeira_requisicao_inicial = (int) $posts->primeira_requisicao_inicial;
$posts->primeira_requisicao_final = (int) $posts->primeira_requisicao_final;
$posts->proxima_requisicao_inicial = (int) $posts->proxima_requisicao_inicial;
$posts->proxima_requisicao_final = (int) $posts->proxima_requisicao_final;
if ($posts->proxima_requisicao_inicial == NULL || $posts->proxima_requisicao_final == NULL) {
//não existe nenhuma requisição
//echo CHtml::label('Faixa Liberada para o Médico', 'primeira_requisicao_inicial');
echo CHtml::HiddenField('primeira_requisicao_inicial', $posts->primeira_requisicao_inicial, array('readonly' => true, 'size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />, array('size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />, array('id' => 'primeira_requisicao_inicial') );
echo CHtml::HiddenField('primeira_requisicao_final', $posts->primeira_requisicao_final, array('readonly' => true, 'size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />, array('size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />, array('id' => 'primeira_requisicao_final') );
echo 'Faixa Calculada!';
} else {
//existe requisicao
//echo CHtml::label('Faixa Liberada para o Médico', 'proxima_requisicao_inicial');
echo CHtml::HiddenField('Requisicao[proxima_requisicao_inicial]', $posts->proxima_requisicao_inicial, array('readonly' => true, 'size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />, array('id' => 'proxima_requisicao_inicial')) ;
echo CHtml::HiddenField('Requisicao[proxima_requisicao_final]', $posts->proxima_requisicao_final, array('readonly' => true, 'size' => 8, 'maxlength'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />, array('id' => 'proxima_requisicao_final'));
echo 'Faixa Calculada!';
}
Desculpem, más ainda estou iniciando no Yii