Iishfaaq Ismath
Iishfaaq Ismath

Reputation: 77

How to insert a PHP code which has HTML tag inside the Javascript

I want to add a PHP script which has HTML tags, inside a javascript. Below you can see the code I tried. But It's not working and stating that there is an error

<script type='text/javascript'>
//<![CDATA[
 $(document).ready(function() {
  var currentItem = 11;
  $('#addnew').click(function(){
   currentItem++;
   $('#items').val(currentItem);
var strToAdd = '<tr><td><select class="form-control select2" name="product'+currentItem+'" id="product'+currentItem+'" style="width: 100%">'+
                <?php foreach ($productData as $product) { echo "<option value='" . $product->product_id . "'>" . $product->product_name . "</option>"; }?>+
                '</select> </td><td><input class="form-control" name="quantity'+currentItem+'" id ="quantity'+currentItem+'"type="text" /></td> 
                <td><input class="form-control"  name="freeIssue'+currentItem+'" id="freeIssue'+currentItem+'" type="text" /></td>
                 <td align="center"><button  class="btn btn-danger" name="close" id="close" onclick="SomeDeleteRowFunction(this)"><i class="fa fa-close"></i></button></td></tr>';



   $('#data').append(strToAdd);

  });

  $('#remove').on("click", function(){
    $('#data tr:last').remove();
})

 });

//]]>
</script>

This is the error I get:

enter image description here

Upvotes: 1

Views: 685

Answers (1)

gazdagergo
gazdagergo

Reputation: 6731

You need to put an extra ' after echo " otherwise you do not get the desired javascript string like '<option... >' but you get an <option... > which means nothing in a js code.

 echo "'<option value='" . $product->product_id . "'>'" 

Upvotes: 1

Related Questions