2017-06-13 25 views
1

商品ごとに1〜20個のドロップボックスがあり、各商品に同じクラス名(product_id)のドロップボックスがあります。jQuery同じクラス名のXドロップダウンに要素を追加

次に、コントローラから量産品を取り消すことができる情報を持つ別の配列があります。

ここで、product_id Xとquntity Y(情報X、Yはコントローラーの配列で書かれています)のドロップダウンにオプション "cancel"を追加する必要があります。

ex。 product: 1, qty: 3; - これは、3つのドロップダウンオプション "キャンセル"を追加する必要があることを意味しますが、顧客はID1の製品を最大20個注文することができ、id1の3個の製品にのみオプションのキャンセルを追加する必要がありますそのオプション)。

は、ここに私のhtmlコード

//Dropboxes 
echo '<div class="col-sm-6">' . 
    $this->Form->input('task[]', [ 
     'label' => __('Container action'), 
     'options' => $taskAction, 
     'default' => '1', 
     'id' => 'task', 
     'class' => 'form-control select ' . $product_id_calss . '' 
    ]) . 
'</div>'; 

このドロップダウンは、foreachループ内にあり、反復の数は、製品qunatityに基づいています。 ( - 数量> xはtakingOffProductList-に定義されていますが、それだけでX回を追加する必要があります)

<script> 
    var data = <?php echo json_encode($takingOffProductList); ?>; 
    $.each(data, function (index, value) { 
    quantity = $('.' + value.quantity).length; 
     for(i=1; i<= quantity; i++){ 
     $('.' + value.product_id).append('<option value="3"><?=__('Taking off')?></option>'); 
    } 
    }); 
</script> 

私はappendオプションでこれを作っていますが、私はクラス名を使用する場合、このコードは、そのIDを持つ各製品に追加します

私は私の問題を明確に説明したことを祈っています:) ありがとう!

答えて

1

あなたの質問が正しく理解されている場合: 同じクラス名のドロップダウンでx倍の同じオプションを追加したいとします。そうであれば、slice(0, your_count)を使用して特定の金額=>xの同名の要素を取ることができます。ここで

はとてもシンプル:) ... THXをit'sソリューション

<?php if (isset($takingOffProductList)) { ?> 
    <script> 
    var data = <?php echo json_encode($takingOffProductList); ?>; 
    $.each(data, function (index, value) { 
     var count = value.quantity; 
     $('.' + value.product_id).slice(0, count).append('<option value="3"><?=__('Taking off')?></option>'); 
    }); 
    </script> 
<?php } ?> 
+1

は、ありがとうです – JohnWayne

関連する問題