ビューでajaxlinkを使用して、送信フォームの新しい行を追加します。どの行が作成されたかを示すインデックスが必要なので、クラス変数を使用してインデックスを保存します。しかし、変数は1回しか変更されないことがわかりました。
これが私のコードです
public function actionNewrow()
{
$this->i++;
$form = new CActiveForm();
$temp = new exportprice();
array_push($this->exps, $temp);
//echo count($this->exps);
$i = count($this->exps)-1;
$html = '<tr><td>'.
$this->i.$form->labelEx($this->exps[0],'['.$i.']productname').$form->textField($this->exps[0],'['.$i.']productname').$form->error($this->exps[0],'['.$i.']productname')
.'</td>'.
'<td>'.
$form->labelEx($this->exps[0],'['.$i.']trend').$form->textField($this->exps[0],'['.$i.']trend').$form->error($this->exps[0],'['.$i.']trend')
.'</td>'.
'<td>'.
$form->labelEx($this->exps[0],'['.$i.']margin').$form->textField($this->exps[0],'['.$i.']margin').$form->error($this->exps[0],'['.$i.']margin')
.'</td></tr>';
echo $html;
}
echo CHtml::ajaxLink("新增",
Yii::app()->createUrl( 'InputReport/newrow' ),
// ajax options
array(
'error' => 'function(data) { alert("error!"); }',
'success' => 'function(data) { $("#exptbl").append(data); }',
'cache'=>false,
),
// htmloptions
array(
'id' => 'handleClick',
)
);