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);</script>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(); });
//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']); } } }