Q : ajax でテーブルの行のラベルにデータ値を追加する方法は?
status : フォームのテーブルに新しい行を追加します。次に、ユーザーがアイテムを選択すると、価格がラベル(価格)に表示されます。コントローラーからのリターンは問題ありません。しかし、価格はラベル(価格)に表示されませんでした。
これが私の見解です
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'acc-recei-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<?php
Yii::app()->clientScript->registerScript('add-item', "
$('#add-item').click(function(){
//console.log(item_template);
$('#template .template_item').clone().appendTo('#item_list');
$('#item_list .template_item').fadeIn();
return false;
});
$('#AccRecei_acc_category_id').live('change', function(){
var itemID = $(this).val(),
vNode = $(this);
$.ajax({
url: 'getitem/'+itemID,
dataType: 'json',
success: function(data){
var target = $(vNode).parents('tr');
alert(target);
$(target).find('.price').val(data.item_price);
}
});
//alert(vNode);
});
");
?>
<table id="item_list">
<tr>
<td>name</td>
<td>price</td>
<td>qty</td>
<td>row_total</td>
<tr>
</table>
<!--- other fields -->
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
<table id="template" style="display:none;" >
<tr class="template_item">
<td><?php
echo $form->dropDownList($model,'acc_category_id', $accitemslist, array(
'prompt'=>'Please select a category',
'options'=>array("$model->acc_category_id"=>array('selected'=>'selected')),
)
);
?></td>
<td><label id="price" class="price"></label></td>
<td><input type="text" name="item_qty[]" class=".qty" /></td>
<td><label id="row_total" class="row_total[]"></label></td>
<tr>
</table>
これはコントローラーです(ajaxからの呼び出し)
public function actionGetitem()
{
echo CJSON::encode(array(
'item_price'=>12,
));
}