0

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, 
        ));
    }
4

2 に答える 2

2

「ラベル」タグには「値」がありません。代わりに「 text() 」を使用してみてください。

于 2012-08-29T09:15:49.757 に答える