I have a table in an HTML form in which the total columns depends on the user. The additional columns are added with a button click. The rows that come with the added columns are supposed to be array inputs which will be sent to MySQL database once the form is submitted.
I am new at javascript and jquery. I did some search on the internet and found a lot of 'creating HTML tables with dynamic rows/columns' related stuff but none of them were related to having input cells in the rows that came with the dynamic columns and sending them to the database.
I came across this link that gave me a headstart but I am stuck: Dynamic columns - Stack Overflow
In the image above, the columns 'Bus1 kW' etc. are added when a button is clicked, including the button in the screenshot would just make the image unnecessarily longer. The rows to all added columns are supposed to be input fields, the reason I can change the value of those fields is that I enabled 'content editable'. I tried adding input fields that are arrays but when I do so the button that adds columns stops working.
How do I make the rows that come with the dynamic columns to have input fields as arrays so that I can access them in PHP? How do I add this: <input type="text" required="required" name="Bus1_kW[]"> to the rows that come with the dynamic columns in such a way that all rows for column lets say 'Bus1 kW' are stored in an array that I can access in PHP when I submit the form?
Here is the script code that is producing the image above (jquery):
<script type="text/javascript">
var i = 1;
// This part works fine
$("#addColumn").click(function () {
$("tr:first").append("<td>Bus"+i+" kW</td>");
$("tr:not(:first)").append("<td contenteditable="+true+"> </td>");
i = i+1;
});
</script>
This is what I tried to do but it's not working:
<script type="text/javascript">
var i = 1;
// This is what I tried to do but it's not working
$("#addColumn").click(function () {
$("tr:first").append("<td>Bus"+i+" kW</td>");
$("tr:not(:first)").append("<input type="+text+" required="+required+" name="+"Bus"+i+"_kW[]"+">");
i = i+1;
});
</script>
This is the table inside the HTML form:
<table id="busDataTable" class="form-group-sm" border="1">
<tbody>
<tr>
<th>Interval Number</th>
<th>Time Interval (30min)</th>
</tr>
<tr> <td>1</td> <td>0</td> </tr> <!-- -->
<tr> <td>2</td> <td>0.5</td> </tr> <!-- -->
<tr> <td>3</td> <td>1</td> </tr> <!-- -->
<tr> <td>4</td> <td>1.5</td> </tr> <!-- -->
<!-- Table rows continue until 48 rows -->
</tbody> <button id="addColumn">Add Column</button>
</table>
I would appreciate any solution/help, jquery or javascript, I just barely got into javascript and do not know which would be preferred and why between javascript and jquery. Thank you for your time
