bisa2 bro…
ini viewnya…
<?php
Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl.'/css/javascript/jquery.min.js',CClientScript::POS_HEAD);
Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl.'/css/javascript/reCopy.js',CClientScript::POS_HEAD);
Yii::app()->clientScript->registerScript("","
$(function(){
var removeLink = ' <a class=\"remove\" href=\"#\" onclick=\"$(this).parent().slideUp(function(){ $(this).remove() }); return false\">remove</a>';
$('a.add').relCopy({ append: removeLink});
});
",CClientScript::POS_HEAD);
?>
<p class="clone">
<?php echo $form->labelEx($model,'product_number'); ?>
<?php //echo $form->textField($model,'product_number[]',array('size'=>30,'maxlength'=>128));
echo CHtml::activeTextField($model,'product_number[]');
?>
<?php echo $form->error($model,'product_number'); ?>
<?php echo $form->labelEx($model,'product_desc'); ?>
<?php
echo CHtml::activeTextField($model,'product_desc[]');
//echo $form->textField($model,'product_desc[]',array('size'=>30,'maxlength'=>128)); ?>
<?php echo $form->error($model,'product_desc'); ?>
<?php echo $form->labelEx($model,'quantity'); ?>
<?php
echo CHtml::activeTextField($model,'quantity[]');
//echo $form->textField($model,'quantity[]'); ?>
<?php echo $form->error($model,'quantity'); ?>
</p>
<p><a href="#" class="add" rel=".clone">Add More</a></p>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Simpan' : 'Save'); ?>
</div>
ini js reCopy nya
/**
* jQuery-Plugin "relCopy"
*
* @version: 1.1.0, 25.02.2010
*
* @author: Andres Vidal
* code@andresvidal.com
* http://www.andresvidal.com
*
* Instructions: Call $(selector).relCopy(options) on an element with a jQuery type selector
* defined in the attribute "rel" tag. This defines the DOM element to copy.
* @example: $('a.copy').relCopy({limit: 5}); // <a href="example.com" class="copy" rel=".phone">Copy Phone</a>
*
* @param: string excludeSelector - A jQuery selector used to exclude an element and its children
* @param: integer limit - The number of allowed copies. Default: 0 is unlimited
* @param: string append - HTML to attach at the end of each copy. Default: remove link
* @param: string copyClass - A class to attach to each copy
* @param: boolean clearInputs - Option to clear each copies text input fields or textarea
*
*/
(function($) {
$.fn.relCopy = function(options) {
var settings = jQuery.extend({
excludeSelector: ".exclude",
emptySelector: ".empty",
copyClass: "copy",
append: '',
clearInputs: true,
limit: 0 // 0 = unlimited
}, options);
settings.limit = parseInt(settings.limit);
// loop each element
this.each(function() {
// set click action
$(this).click(function(){
var rel = $(this).attr('rel'); // rel in jquery selector format
var counter = $(rel).length;
// stop limit
if (settings.limit != 0 && counter >= settings.limit){
return false;
};
var master = $(rel+":first");
var parent = $(master).parent();
var clone = $(master).clone(true).addClass(settings.copyClass+counter).append(settings.append);
//Remove Elements with excludeSelector
if (settings.excludeSelector){
$(clone).find(settings.excludeSelector).remove();
};
//Empty Elements with emptySelector
if (settings.emptySelector){
$(clone).find(settings.emptySelector).empty();
};
// Increment Clone IDs
if ( $(clone).attr('id') ){
var newid = $(clone).attr('id') + (counter +1);
$(clone).attr('id', newid);
};
// Increment Clone Children IDs
$(clone).find('[id]').each(function(){
var newid = $(this).attr('id') + (counter +1);
$(this).attr('id', newid);
});
//Clear Inputs/Textarea
if (settings.clearInputs){
$(clone).find(':input').each(function(){
var type = $(this).attr('type');
switch(type)
{
case "button":
break;
case "reset":
break;
case "submit":
break;
case "checkbox":
$(this).attr('checked', '');
break;
default:
$(this).val("");
}
});
};
$(parent).find(rel+':last').after(clone);
return false;
}); // end click action
}); //end each loop
return this; // return to jQuery
};
})(jQuery);
jquery.min.js nya bisa diambil di http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
ini controllernya
public function actionCreate()
{
$model=new ProductDelivery;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
//tadinya nyoba begini
if(isset($_POST['ProductDelivery'])
$model->attributes=$_POST['ProductDelivery'];
$array=$_POST['ProductDelivery']['product_number']
foreach($array as $isi)
{
$model->product_number=$isi; ///ada 3 field yang diclone,ini cuma coba2 aja buad masukin product_number dulu...
$model->save();
}
//if($model->save())
//$this->redirect(array('view','id'=>$model->id));
$this->render('create',array(
'model'=>$model,
));
}