Breno,
Eu tenho um sistema que fiz isso, mais como está muito antigo não vou remodelar ele não, vou te passar.
javascript:
$('div[class*=maistelefone]').live('click', function(){
var titulo = $('input[id=Telefone_titulo]');
var telefone = $('input[id=Telefone_fone]');
var contato = $('input[id=Telefone_contato]');
if(titulo.val() == ''){
$('<div title=\"Aviso\">Preencha corretamente o Título.</div>').dialog({buttons:{'OK': function() {
$(this).dialog('close');
}}});
return false;
} else if(telefone.val() == ''){
$('<div title=\"Aviso\">Preencha corretamente o Telefone.</div>').dialog({buttons:{'OK': function() {
$(this).dialog('close');
}}});
return false;
} else if(contato.val() == ''){
$('<div title=\"Aviso\">Preencha corretamente o Contato.</div>').dialog({buttons:{'OK': function() {
$(this).dialog('close');
}}});
return false;
} else {
$('div[id=telefone]').append('<div id=\"add\" title=\"Clique aqui para remover\">' + titulo.val() + ' - ' + telefone.val() + ' - ' + contato.val() + ' <img src=\"" . (Html::image('icones/cross-circle.png')) . "\" align=\"absmiddle\" alt=\"Remover\" title=\"Remover\"> Remover</div>');
$('<input />', {type: 'hidden', name: 'Telefone[titulo][]', val: titulo.val()}).appendTo('div[id=telefone]');
$('<input />', {type: 'hidden', name: 'Telefone[fone][]', val: telefone.val()}).appendTo('div[id=telefone]');
$('<input />', {type: 'hidden', name: 'Telefone[contato][]', val: contato.val()}).appendTo('div[id=telefone]');
titulo.val('');
telefone.val('');
contato.val('');
}
});
$('div[id=add]').css({'cursor':'pointer'}).live('click', function(){
if(!confirm('Tem certeza que deseja remover?')){
return false;
}
$(this).remove();
});
HTML:
<div class="row telefones">
<?php echo Chtml::openTag('fieldset'); ?>
<?php echo Chtml::tag('legend', array(), 'Telefone(s)') ?>
<?php
if (!$model->isNewRecord) {
$telephones = Telefone::model()->findAll(
array(
'condition' => 'cod = :cod AND bd = :bd',
'params' => array(':cod' => $model->codmotorista, ':bd' => controller()),
'order' => 'titulo ASC'
)
);
echo '<table cellpadding="0" cellspacing="0" border="0">';
echo '<tr>';
echo '<th align="left"></th><th align="left">Título</th><th align="left">Telefone</th><th align="left">Contato</th>';
echo '</tr>';
foreach ($telephones as $telephone) {
echo '<tr id="telefone' . $telephone->codtelefone . '">';
echo '<td width="100">';
echo CHtml::ajaxLink('<img src="' . Html::image('icones/cross-circle.png') . '" border="0" align="absmiddle" /> Remover',
Yii::app()->createUrl('my/TelefoneRemover'),
array(// ajaxOptions
'type' => 'POST',
'beforeSend' => "function(request){
if(!confirm('Deseja remover esse telefone?')){
return false;
}
return true;
}",
'success' => "function(data){
$('tr[id=telefone'+$telephone->codtelefone+']').remove();
}",
'data' => array('id' => $telephone->codtelefone)
)
);
echo '</td>';
echo '<td width="100">' . $telephone->titulo . '</td><td width="100">' . $telephone->fone . '</td><td width="300">' . $telephone->contato . "</td>";
echo '</tr>';
}
echo '</table>';
}
//$telefone->titulo = $telefone->fone = $telefone->contato = ''
?>
<div class="row titulo">
<?php echo $form->labelEx($telefone, 'titulo'); ?>
<?php echo $form->textField($telefone, 'titulo', array('class' => 'input w200px', 'maxlength' => 60)); ?>
<?php echo $form->error($telefone, 'titulo'); ?>
</div>
<div class="row telefone">
<?php echo $form->labelEx($telefone, 'fone'); ?>
<?php echo $form->textField($telefone, 'fone', array('class' => 'input w200px', 'maxlength' => 60)); ?>
<?php echo $form->error($telefone, 'fone'); ?>
</div>
<div class="row contato">
<?php echo $form->labelEx($telefone, 'contato'); ?>
<?php echo $form->textField($telefone, 'contato', array('class' => 'input w200px', 'maxlength' => 60)); ?>
<?php echo $form->error($telefone, 'contato'); ?>
</div>
<div class="row maistelefone">
<img alt="" src="<?php echo Html::image('icones/plus-circle.png') ?>" align="absmiddle"/> adicionar
</div>
<div id="telefone" class="listatelefone"></div>
<?php echo Chtml::closeTag('fieldset') ?>
</div>
E no Controller tu consegue se virar?
foreach($_POST["Telefone"] as $fone){
...
}