2017-05-09 6 views
0

こんにちは誰かが私のforeachの結果を私のJSの行の機能に入れて助けることができます。私のforeachを置くことができませんJSの選択オプション

私は、コントローラからのデータを渡すCodeigniterを使用しています。

だから、私はOPTIONSの私のforeach細目の結果が得られますVIEWSELECTを持っています。

<td class="form-group"> 
    <select class="form-control" name="subparticulars[<?php echo $x; ?>]" id="subparticulars<?php echo $x; ?>"> 
     <option value="">Select Particulars</option> 

     <?php foreach ($particularsData as $particulars) 
     { 
     ?> 

     // FOR EACH RESULTS INSIDE THE OPTIONS 
     <option value="<?php echo $particulars['feetype_id']; ?>"> <?php echo $particulars['feetype_name']; ?> </option> 

     <?php 
     } 
     ?> 
    </select>      
</td> 

だから、モーダルフォーム選択オプションは次のようになります。 enter image description here

今の私のあなたがをクリックすると、右上に行ボタンを追加し、それが新しい、同一の行を追加します私のJSで行関数を追加するために移動してみましょう。

function addPaymentRow() 
{ 
var tableLength = $("#addSubPaymentTable tbody tr").length; 

var tableRow; 
var arrayNumber; 
var count; 

if(tableLength > 0) {  
    tableRow = $("#addSubPaymentTable tbody tr:last").attr('id'); 
    arrayNumber = $("#addSubPaymentTable tbody tr:last").attr('class'); 
    count = tableRow.substring(3); 
    count = Number(count) + 1; 
    arrayNumber = Number(arrayNumber) + 1;     
} else { 
    // no table row 
    count = 1; 
    arrayNumber = 0; 

} 

// I NEED HELP HERE, I CAN ADD ROWS with no foreach value just plain input type, HOW CAN I ADD VALUES HERE FROM FOR EACH     
var tr = '<tr id="row'+count+'" class="'+arrayNumber+' appended-exp-row">'+         
    '<td class="form-group">'+ 
     '<select class="form-control" name="subparticulars['+count+']" id="subparticulars'+count+'">'+ 
     '<option value="">Select Particulars</option>'+ 
     '</select>'+       
    '</td>'+ 

    '<td class="form-group">'+ 
     '<input type="text" class="form-control" name="subpaymentbalance['+count+']" id="subpaymentbalance'+count+'"/>'+       
    '</td>'+ 

    '<td class="form-group">'+   
     '<input type="text" class="form-control" name="subpaymentamount['+count+']" id="subpaymentamount'+count+'" onkeyup="calculateTotalAmount()" placeholder="Payment Amount" />'+         
    '</td>'+ 

    '<td class="form-group">'+ 
     '<button type="button" class="btn btn-danger btn-sm" onclick="removePaymentRow('+count+')">Remove</button>'+ 
    '</td>'+ 
'</tr>'; 

if(tableLength > 0) {       
    $("#addSubPaymentTable tbody tr:last").after(tr); 
} else {     
    $("#addSubPaymentTable tbody").append(tr); 
}    
} 

添加行のこのようになります結果。 enter image description here

は、誰かが私のVIEWのように私ののforeachから来た私のJSオプションを移入助けることができます。

+0

あなたは後に追加]を選択し、同じしたいですか? – Omi

+0

はい、私は同じ人口の同じオプションを私のそれぞれから来て同じ選択します。行の追加ボタンをクリックすると、同じ同じ行が表示されたのと同じです。私はちょうどJSの行機能を追加する私のオプションを設定するのに役立つ必要があります – Cecatrix

+0

このhttps://www.w3schools.com/jquery/html_clone.aspを見てください –

答えて

1

これを試してみてください: $('.particulars option').clone()あなたのメインセレクトのすべてのオプションを提供します。それから、新しく作成したセレクトにそれを追加するだけです。

<td class="form-group"> 
<select class="form-control particulars" name="subparticulars[<?php echo $x; ?>]" id="subparticulars<?php echo $x; ?>"> 
    <option value="">Select Particulars</option> 

    <?php foreach ($particularsData as $particulars) 
    { 
    ?> 

    // FOR EACH RESULTS INSIDE THE OPTIONS 
    <option value="<?php echo $particulars['feetype_id']; ?>"> <?php echo $particulars['feetype_name']; ?> </option> 

    <?php 
    } 
    ?> 
</select>      

function addPaymentRow() 
    { 
     var tableLength = $("#addSubPaymentTable tbody tr").length; 

     var tableRow; 
     var arrayNumber; 
     var count; 

     if (tableLength > 0) { 
      tableRow = $("#addSubPaymentTable tbody tr:last").attr('id'); 
      arrayNumber = $("#addSubPaymentTable tbody tr:last").attr('class'); 
      count = tableRow.substring(3); 
      count = Number(count) + 1; 
      arrayNumber = Number(arrayNumber) + 1; 
     } else { 
      // no table row 
      count = 1; 
      arrayNumber = 0; 

     } 

// I NEED HELP HERE, I CAN ADD ROWS with no foreach value just plain input type, HOW CAN I ADD VALUES HERE FROM FOR EACH     
     var tr = '<tr id="row' + count + '" class="' + arrayNumber + ' appended-exp-row">' + 
       '<td class="form-group">' + 
       '<select class="form-control" name="subparticulars[' + count + ']" id="subparticulars' + count + '"></select>' + 
       '</td>' + 
       '<td class="form-group">' + 
       '<input type="text" class="form-control" name="subpaymentbalance[' + count + ']" id="subpaymentbalance' + count + '"/>' + 
       '</td>' + 
       '<td class="form-group">' + 
       '<input type="text" class="form-control" name="subpaymentamount[' + count + ']" id="subpaymentamount' + count + '" onkeyup="calculateTotalAmount()" placeholder="Payment Amount" />' + 
       '</td>' + 
       '<td class="form-group">' + 
       '<button type="button" class="btn btn-danger btn-sm" onclick="removePaymentRow(' + count + ')">Remove</button>' + 
       '</td>' + 
       '</tr>'; 

     if (tableLength > 0) { 
      $("#addSubPaymentTable tbody tr:last").after(tr); 
     } else { 
      $("#addSubPaymentTable tbody").append(tr); 
     } 

     $('.particulars option').clone().appendTo('#subparticulars' + count); 
    } 
+0

新しい行が追加されたときにSelect Detailsを2倍にしているのでちょっとしたadjusmentを追加しました。 ' 'をJSに、ありがとう。 – Cecatrix

+0

はい、クローンを追加する必要はありませんので、すべてのオプションを与えます – Omi

関連する問題