Dynamic Form Update Delete Insert

example

Form:
<div id="main">
    <table class="table table-stripped variant_range">
        <thead>
        <tr>
            <th><label for="variant"><strong>Variant </strong></label></th>
            <th><label><strong>Unit (kgs/grms)</strong></label></th>
            <th><label><strong>Price</strong> (<i class="fa fa-inr"></i>)</label></th>
            <th>
                <input type="hidden" id="count" name="count" value="0">
                <a class="btn btn-sm btn-success" href="javascript:void(0)" onclick="addData()" ><i class="fa fa-plus-circle"></i> Add Item</a>
            </th>
        </tr>
        </thead>
        <tbody>
        </tbody>
    </table>

</div>

Javascript:
<script type="text/javascript">
  var html = '';
var cnt =$("#count").val();
var unit = "";
<?php foreach ($productVariantDetails as $key=>$productVariants){ ?>    cnt++;
<?php if($productVariants->unit == 1){ ?>    unit = '<option value="1" selected> kgs </option><option value="2"> grms </option>';
<?php }else{ ?>    unit = '<option value="1"> kgs </option><option value="2" selected> grms </option>';
<?php } ?>
    html += '<tr>';
html += '<td class="variants units'+cnt+'">';
html += '<input type="text" class="form-control" name="variant'+cnt+'" id="variant'+cnt+'" value="{{ ($productVariants->unit == 2 ? $productVariants->variant * 1000 : $productVariants->variant) }}" />';
html += '</td>';
html += '<td class="variants units'+cnt+'">';
html += '<select class="form-control" name="unit'+cnt+'" id="unit'+cnt+'">';
html +=  unit;
html += '</select>';
html += '</td>';
html += '<td class="variants units'+cnt+'">';
html += '<input type="text" class="form-control" name="price'+cnt+'" id="price'+cnt+'" value="{{ $productVariants->price }}"/>';
html += '</td>';
html += '<td class="variants units'+cnt+'">';
html += '<a href="javascript:void(0)" class="removeDivTag text-danger" id="units'+cnt+'"><i class="fa fa-trash fa-lg"></i>';
html += '</a>';
html += '</td>';
html += '<td>';
html +=' <input type="hidden" class="form-control" id="product-variants'+cnt+'" name="product_variant_id'+cnt+'" value="{{$productVariants->id}}">';
html += '</td>';
html += '</tr>';
<?php } ?>$("#main tbody").append(html);
$("#count").val(cnt);
function addData() {
    var cnt =$("#count").val();
    cnt++;
    $("#main tbody").append('<tr><td class="variants units'+cnt+'"><input type="text" class="form-control" name="variant'+cnt+'" id="variant'+cnt+'" value="" /></td><td class="variants units'+cnt+'"><select class="form-control" name="unit'+cnt+'" id="unit'+cnt+'"><option value="1"> kgs </option><option value="2" selected> grms </option></select></td><td class="variants units'+cnt+'"><input type="text" class="form-control" name="price'+cnt+'" id="price'+cnt+'" value=""/></td><td class="variants units'+cnt+'"><a href="javascript:void(0)" class="removeDivTag text-danger" id="units'+cnt+'"><i class="fa fa-trash fa-lg"></i></a></td></tr>');
    $("#count").val(cnt);
}
$(document).on("click",".removeDivTag",function () {
    $("."+$(this).attr('id')).empty();
});
</script>

Update - Delete - Add New in database:
//variant$inputs_details = [];for ($count = 1; $count <= $request['count']; $count++) {    if(isset($request['product_variant_id'.$count])){        //update        if(isset($request['variant'.$count])){            $inputs_details['id']           = $request['product_variant_id'.$count];                if($request['unit'.$count] == 2 ){                    $inputs_details['variant']  = number_format(($request['variant'.$count])/1000,3);                }                else{                    $inputs_details['variant']  = $request['variant'.$count];                }            $inputs_details['unit']         = $request['unit'.$count];            $inputs_details['price']        = $request['price'.$count];            $inputs_details['updated_by']   = $request->session()->get('full_name');
            $this->_objProducts->updateProductVariantsById($inputs_details['id'] ,$inputs_details['variant'], $inputs_details['unit'], $inputs_details['price'], $inputs_details['updated_by']);        }else{            // remove            $inputs_details['id']           = $request['product_variant_id'.$count];            $this->_objProducts->deleteProductVariantsById($inputs_details['id']);        }
    }else {        // add new        if(isset($request['variant'.$count])) {            $inputs_details['productID']    = $request['id'];            if($request['unit'.$count] == 2 ){                $inputs_details['variant']  = number_format(($request['variant'.$count])/1000,3);            }            else{                $inputs_details['variant']  = $request['variant'.$count];            }            $inputs_details['unit']         = $request['unit'.$count];            $inputs_details['price']        = $request['price'.$count];            $inputs_details['created_by']   = $request->session()->get('full_name');
            $this->_objProducts->addProductVariantDetails($inputs_details['productID'] ,$inputs_details['variant'], $inputs_details['unit'], $inputs_details['price'], $inputs_details['created_by']);        }    }
}

Popular posts from this blog

Ajax Toggle(on/off) on-click Update

Yii Framework In Update Time View Image In Form