2016-11-08 6 views
0

Ich versuche ein Bearbeitungsformular zu erstellen, das dynamisch ist. Der Benutzer kann weitere Zeilen hinzufügen oder Zeilen löschen.Mehrere Zeilen im dynamischen Eingabefeld anzeigen

Es gibt kein Problem in meinem PHP. Das Problem ist in My Jquery.

Hier ist mein HTML

<?php 
       $attributes = array('class' => 'form-horizontal', 'id' => ''); 
       echo form_open_multipart($controller.'/save',$attributes); 
       ?> 

       <div class="form-group"> 
        <label class="col-sm-3 control-label">Attendance Date </label> 
        <div class="col-sm-7"> 
        <div class="input-group"> 
         <div class="input-group-addon"> 
         <i class="fa fa-calendar"></i> 
         </div> 
         <input id="datetimepicker_mask" type="text" value="<?=inggris_date($master->startdate)?>" readonly name="attendance_date" class="form-control"/> 
        </div> 
        </div> 
        </div> 


        <div class="form-group"> 
         <label class="col-sm-3 control-label">Keterangan</label> 
         <div class="col-sm-5"> 
         <textarea class="form-control" required name="keterangan"><?=$master->keterangan;?></textarea> 
         </div> 
        </div> 

        <table width="100%" id="example1" class="table table-bordered table-striped"> 
         <tr> <td> 
           No. 
          </td> 
          <td> Nama Lengkap </td> 

         </tr> 

         <?php 
         $x = 0; 
         foreach($detail as $det) { 
         $x++; 
         ?> 
         <tr id = 'ke<?=$x;?>'> 
          <td> <?=$x;?> </td> 
          <td> 
           <select name="nip[]" class="form-control select2"> 
           <option> -- </option> 
           <?php foreach($emp as $orang){ ?> 
           <option <?php if($det->nip == $orang->Nip) echo "selected"; ?> value="<?=$orang->Nip;?>"> [<?=$orang->Nip;?>] - [<?=$orang->FullName;?>] </option> 
           <?php } ?> 
           </select> 
          </td> 
         </tr> 
         <?php } ?> 


        </table> 
         <div><a id="add_row" class="btn btn-success pull-left">Tambah Baris Baru</a>&nbsp;&nbsp;&nbsp;<a id="delete_row" class="pull-left btn btn-danger">Hapus Baris</a></div> 
          <br> 
          <br> 

       <div class="box-footer"> 
        <button type="reset" class="btn btn-default">Reset</button> 
        <button type="submit" class="btn btn-info pull-right">Save</button> 
        </div><!-- /.box-footer --> 
       </form> 

und hier meine JQuery ist

 <?php $totaldata = count($detail); echo "Total data = ".$totaldata; ?> 
<script type="text/javascript">  
$(document).ready(function(){ 

     var i=<?=$totaldata;?>; 
    $("#add_row").click(function(){ 
     $('#ke'+i).html("<td>"+ (i+1) +"</td><td><select name='nip[]' class='form-control'>"+ 
           "<option> -- </option>"+ 
           <?php foreach($emp as $orang){ ?> 
           "<option value='<?=$orang->Nip;?>'> [<?=$orang->Nip;?>] - [<?=$orang->FullName;?>] </option>"+ 
           <?php } ?> 
           "</select> </td>"); 
     $('#example1').append('<tr id="ke'+(i+1)+'"></tr>'); 
     i++; 
    }); 
    $("#delete_row").click(function(){ 
     if(i>1){ 
     $("#ke"+(i-1)).html(''); 
     i--; 
     } 
    }); 


}); 
</script> 

So, hier ist mein Problem aus dem ersten Mal, wenn die Seite zu laden. Die Aussicht ist wie dieser

enter image description here

Und dann ist hier, was passiert, wenn ich Tambah Baris Baru klicken

enter image description here

Die zweite Reihe ist verschwunden. Und die Nummerierung ist falsch.

Und das, was passiert, wenn ich klicke wie erwartet Hapus Baris

enter image description here

es ist Arbeit. Aber die Nummerierung ist falsch.

Also, wie kann ich es beheben? Entschuldigung für mein schlechtes Englisch. Vielen Dank.

JsFiddle https://jsfiddle.net/0z2fcg39/

+0

einen schnellen Überblick über Ihren Code nehmen würde ich sagen, dass es ein in Schrittweite Problem ist, wenn Sie hinzufügen oder var Subtrahieren i – Icewine

+0

ich denke so. Aber ich habe versucht, einen Wert mit "totaldata" zu geben, die aus dem Detail kommen. – YVS1102

+0

Bitte überprüfen Sie meine Geige https://jsfiddle.net/0z2fcg39/ – YVS1102

Antwort

2

Das Problem ist der Wert von i wie Sie vermutet. Während der ersten Ausführung Wert von i ist 2, die bereits die zweite Zeile hat, es überschreibt es mit dem neu hinzugefügten (slno 3).

$(document).ready(function() { 
 

 
    var i = 2; 
 
    $("#add_row").click(function() { 
 
    i++; 
 
    var $tr = $('<tr id="ke' + i + '"></tr>').appendTo('#example1'); 
 

 
    $tr.html("<td>" + (i) + "</td><td><select name='nip[]' class='form-control'>" + 
 
     "<option> -- </option>" + 
 
     "<option value='0600260'> [0600260] - [ZAENAL ABIDIN] </option>" + 
 
     "<option value='0802781'> [0802781] - [SATIBI ] </option>" + 
 
     "<option value='0903380'> [0903380] - [JUDY SJARIP] </option>" + 
 
     "<option value='1105605'> [1105605] - [YULIANTI HENDARSIH] </option>" + 
 
     "<option value='1106975'> [1106975] - [ABDUL ROCHIM] </option>" + 
 
     "<option value='120442130008'> [120442130008] - [CHOIRUL ILYAS] </option>" + 
 
     "<option value='1207246'> [1207246] - [ACHMAD MAULANA] </option>" + 
 
     "<option value='123456'> [123456] - [Test] </option>" + 
 
     "<option value='1309713'> [1309713] - [LITICIA SOCA LAWRENDRA ] </option>" + 
 
     "<option value='1411097'> [1411097] - [RAMDAN NUR] </option>" + 
 
     "<option value='1411517'> [1411517] - [JULIMAN YASONASA GEA ] </option>" + 
 
     "<option value='1411795'> [1411795] - [NOVIANTO CHRIS HENDARWAN] </option>" + 
 
     "<option value='1412021'> [1412021] - [WALUYO SUPRIADI] </option>" + 
 
     "<option value='1412717'> [1412717] - [ADDINUL FAUZAN ] </option>" + 
 
     "<option value='1412774'> [1412774] - [ABDUL FATAH] </option>" + 
 
     "<option value='1500575'> [1500575] - [BAGUS SUSETYO] </option>" + 
 
     "<option value='1500701'> [1500701] - [AHMAT SUPARDI] </option>" + 
 
     "<option value='1501815'> [1501815] - [KHAIRUNNAS ] </option>" + 
 
     "<option value='1501971'> [1501971] - [SHELLY DINI DEBYANZAH] </option>" + 
 
     "<option value='1502017'> [1502017] - [CHOIRUL ILYAS] </option>" + 
 
     "<option value='1602762'> [1602762] - [BOBY KURNIAWAN] </option>" + 
 
     "<option value='1603240'> [1603240] - [TOTO MARYOTO] </option>" + 
 
     "</select> </td>"); 
 
    }); 
 

 
    $("#delete_row").click(function() { 
 
    if (i > 1) { 
 
     $("#ke" + i).remove(); 
 
     i--; 
 
    } 
 
    }); 
 

 

 
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="http://localhost:84/payroll2/dinas_ho_other/save" method="post" accept-charset="utf-8" class="form-horizontal" id="" enctype="multipart/form-data"> 
 
    <div class="form-group"> 
 
    <label class="col-sm-3 control-label">Attendance Date</label> 
 
    <div class="col-sm-7"> 
 
     <div class="input-group"> 
 
     <div class="input-group-addon"> 
 
      <i class="fa fa-calendar"></i> 
 
     </div> 
 
     <input id="datetimepicker_mask" type="text" value="2016-11-08" readonly name="attendance_date" class="form-control" /> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 

 
    <div class="form-group"> 
 
    <label class="col-sm-3 control-label">Keterangan</label> 
 
    <div class="col-sm-5"> 
 
     <textarea class="form-control" required name="keterangan">TEST 2</textarea> 
 
    </div> 
 
    </div> 
 

 
    <table width="100%" id="example1" class="table table-bordered table-striped"> 
 
    <tr> 
 
     <td> 
 
     No. 
 
     </td> 
 
     <td>Nama Lengkap</td> 
 

 
    </tr> 
 

 

 
    <tr id='ke1'> 
 
     <td>1</td> 
 
     <td> 
 
     <select name="nip[]" class="form-control select2"> 
 
      <option>--</option> 
 
      <option value="0600260">[0600260] - [ZAENAL ABIDIN]</option> 
 
      <option value="0802781">[0802781] - [SATIBI ]</option> 
 
      <option value="0903380">[0903380] - [JUDY SJARIP]</option> 
 
      <option value="1105605">[1105605] - [YULIANTI HENDARSIH]</option> 
 
      <option value="1106975">[1106975] - [ABDUL ROCHIM]</option> 
 
      <option value="120442130008">[120442130008] - [CHOIRUL ILYAS]</option> 
 
      <option value="1207246">[1207246] - [ACHMAD MAULANA]</option> 
 
      <option value="123456">[123456] - [Test]</option> 
 
      <option value="1309713">[1309713] - [LITICIA SOCA LAWRENDRA ]</option> 
 
      <option value="1411097">[1411097] - [RAMDAN NUR]</option> 
 
      <option value="1411517">[1411517] - [JULIMAN YASONASA GEA ]</option> 
 
      <option value="1411795">[1411795] - [NOVIANTO CHRIS HENDARWAN]</option> 
 
      <option value="1412021">[1412021] - [WALUYO SUPRIADI]</option> 
 
      <option value="1412717">[1412717] - [ADDINUL FAUZAN ]</option> 
 
      <option value="1412774">[1412774] - [ABDUL FATAH]</option> 
 
      <option value="1500575">[1500575] - [BAGUS SUSETYO]</option> 
 
      <option value="1500701">[1500701] - [AHMAT SUPARDI]</option> 
 
      <option value="1501815">[1501815] - [KHAIRUNNAS ]</option> 
 
      <option selected value="1501971">[1501971] - [SHELLY DINI DEBYANZAH]</option> 
 
      <option value="1502017">[1502017] - [CHOIRUL ILYAS]</option> 
 
      <option value="1602762">[1602762] - [BOBY KURNIAWAN]</option> 
 
      <option value="1603240">[1603240] - [TOTO MARYOTO]</option> 
 
     </select> 
 
     </td> 
 
    </tr> 
 

 
    <tr id='ke2'> 
 
     <td>2</td> 
 
     <td> 
 
     <select name="nip[]" class="form-control select2"> 
 
      <option>--</option> 
 
      <option value="0600260">[0600260] - [ZAENAL ABIDIN]</option> 
 
      <option value="0802781">[0802781] - [SATIBI ]</option> 
 
      <option value="0903380">[0903380] - [JUDY SJARIP]</option> 
 
      <option value="1105605">[1105605] - [YULIANTI HENDARSIH]</option> 
 
      <option value="1106975">[1106975] - [ABDUL ROCHIM]</option> 
 
      <option value="120442130008">[120442130008] - [CHOIRUL ILYAS]</option> 
 
      <option value="1207246">[1207246] - [ACHMAD MAULANA]</option> 
 
      <option value="123456">[123456] - [Test]</option> 
 
      <option value="1309713">[1309713] - [LITICIA SOCA LAWRENDRA ]</option> 
 
      <option value="1411097">[1411097] - [RAMDAN NUR]</option> 
 
      <option value="1411517">[1411517] - [JULIMAN YASONASA GEA ]</option> 
 
      <option value="1411795">[1411795] - [NOVIANTO CHRIS HENDARWAN]</option> 
 
      <option value="1412021">[1412021] - [WALUYO SUPRIADI]</option> 
 
      <option value="1412717">[1412717] - [ADDINUL FAUZAN ]</option> 
 
      <option selected value="1412774">[1412774] - [ABDUL FATAH]</option> 
 
      <option value="1500575">[1500575] - [BAGUS SUSETYO]</option> 
 
      <option value="1500701">[1500701] - [AHMAT SUPARDI]</option> 
 
      <option value="1501815">[1501815] - [KHAIRUNNAS ]</option> 
 
      <option value="1501971">[1501971] - [SHELLY DINI DEBYANZAH]</option> 
 
      <option value="1502017">[1502017] - [CHOIRUL ILYAS]</option> 
 
      <option value="1602762">[1602762] - [BOBY KURNIAWAN]</option> 
 
      <option value="1603240">[1603240] - [TOTO MARYOTO]</option> 
 
     </select> 
 
     </td> 
 
    </tr> 
 

 

 
    </table> 
 
    <div><a id="add_row" class="btn btn-success pull-left">Tambah Baris Baru</a>&nbsp;&nbsp;&nbsp;<a id="delete_row" class="pull-left btn btn-danger">Hapus Baris</a> 
 
    </div> 
 
    <br> 
 
    <br> 
 

 
    <div class="box-footer"> 
 
    <button type="reset" class="btn btn-default">Reset</button> 
 
    <button type="submit" class="btn btn-info pull-right">Save</button> 
 
    </div> 
 
    <!-- /.box-footer --> 
 
</form>

+0

https://jsfiddle.net/arunpjohny/u7shLjhf/ –

Verwandte Themen