Gostaria de uma opinião, ajuda, socorro dos senhores.
Possuo o seguinte cenário: um modelo contato com suas propriedades e métodos e um modelo meios (meios de comunicação) que se refere a todos os meios de comunicação que o contato pode ter.
Abaixo as propriedades desses modelos:
contato:
id
nome
função
categoria
(…)
meios:
id
id_contato (FK de contato.id)
dispositivo(tel, im, email, site)
tipo (movel, fixo, skype, …)
O que eu preciso: no formulário de contatos coloco 4 links referentes a meios (telefone, instant messenger, email e site).
1 - Qndo clicar em um desses links, abrirá um formulário em JS usando o CJuiDialog.
2 - Ao preencher os dados e clicar em salvar, a dialog box some e no formulário de contatos aparecerá um campo com os dados preenchidos no formulario contatos.
3 - Os passos 1 e 2 podem ser repetidos diversas vezes.
4 - Ao enviar os dados de contato, o controller do contato ira tratar esses relacionamentos ao criar um novo contato.
Bom, espero ter sido claro nas especificações acima.
Eu pergunto aos senhores. Como criar uma textfield (com máscara de validação) dinamicamente e como passar N dados para o controller sem associa-los diretamente com o mesmo?
Seguinte, clipboard01 é o form inicial, clipboard02 é a dialog com um form em ajax e o clipboard03 é o retorno (nao exatamente como eu quero, mas estou tentando por aqui).
Eu crio dialogos na minha app de forma bem parecida que descreve no wiki, e eu acho uma boa forma de fazer. Aparentemente neste tutorial funciona pro sei caso(Não sei se da forma como ele foi feito, vai mostrar se tiver erros no form, mas não tive tempo de refazer o wiki pra ver).
Bom, como vc está seguindo o wiki, o que vc conseguiu fazer e onde está dando problema.
Como você pode ver, seguindo o wiki, categoria, funcao e empresa eu consegui fazer
os contatos é q nao esta funfando
os contatos nao é droplistbox, é texfield (ou checkbox, q é o q estou fazendo agora).
QNdo tento inserir uma textfield numa div qq, ele nao fecha a caixa de dialogos.
Encerro no botao de fechar.
Ao incluir outro contato novamente, ele ao inves de inserir mais 1, ele repete 2 vezes. Na terceira vez, 3 e assim sucessivamente.
Ta muito escroto!!!!
Vou copiar o código:
controller (actionCriarMeio())
public function actionCriarMeio(){
$model = new Meios;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
// copiado do exemplo no site: http://www.yiiframework.com/wiki/72/cjuidialog-and-ajaxsubmitbutton
// Flag to know if we will render the form or try to add
// new jon.
$flag=true;
if(isset($_POST['Meios']))
{
$flag=false;
$model->attributes=$_POST['Meios'];
if($model->save()){
$name = $model->id;
$value = $model->valor;
$htmlOptions = array();
//Return an <option> and select it
//echo CHtml::tag('option', array('value'=>$model->id,'selected'=>true),CHtml::encode($model->nome),true);
echo "<div id='row'>";
echo CHtml::label($name, $name);
echo CHtml::textField($name, $value, $htmlOptions);
echo "</div>";
}
}
if ($flag)
$this->renderPartial('createDialog',array('model'=>$model,),false,true);
}
Isso que eu ia dizer, verifica no Firebug, se está indo 3 submissão ou se ta indo 1, esses tipos de dados, eu procuro fazer inline, no proprio form, com outra aba, nunca fiz por dialog.
Gostaria de saber se posso fazer o seguinte: queria mostrar um campo a mais na tabela do meu ‘[color="#FF0000"]\atendimento\admin[/color]’ por exemplo. Tenho um campo de Km Inicial e outro de Km Final, gostaria de mostrar ao usuário a diferença. É possível fazer isso? E como?
E sobre inserir N números de telefone em um cadastro de Clientes, por exemplo.
Inserir os dados nos campos de telefone(tipo de contato, nome e telefone).
Após clicar no botão de adicionar, chamar em ajax o telefone/create e inserir os dados.
E dar um reload na grid que fica abaixo do formulário que lista todos os telefones.
Eu fiz 2 renderPartial(), um chamando o //telefone/_formPartial e outro //telefone/indexPartial.
Dentro do _formPartial fiz um botão em ajax que envia os dados, e no ‘success’ do javascript eu retorno um ‘$.fn.yiiGridView.update(‘telefone-grid’);’, ele envia os dados corretamente.
Mais eu queria fazer uma validação desses campos, eu só sei que a validação e feita no ID do form, porem em HTML <form> dentro do outro <form> não funciona, existe outra maneira de validar?