How to Add Unlimited Fields in Form Using JavaScript and Store Into Database With PHP

Sometimes we need to add unlimited fields into our form for a better user experience. At that time, we can put an ADD FIELD button into the page for dynamic field generation on a webpage.

Creating unlimited fields in the form is effortless using JavaScript and jQuery. Also, saving the data into a database is easy to handle with PHP.

Adding Unlimited Fields Using JS and Saving Using PHP

Here we will use JavaScript to add new fields and PHP to save data into the database.

Step 1: Create a form and add a function to add new dynamic fields

<!DOCTYPE html>
<html>
	<body>
		<form id="form" method="POST" action="save_data.php">
			<input type="text" name="text_field[]">
			<button type="submit">SUBMIT</button>
		</form>
		<button onclick="add_field()">ADD FIELD</button>
		<script>
			function add_field(){
			    
				var x = document.getElementById("form");
	            // create an input field to insert
				var new_field = document.createElement("input");
				// set input field data type to text
				new_field.setAttribute("type", "text");
				// set input field name 
				new_field.setAttribute("name", "text_field[]");
                // select last position to insert element before it
				var pos = x.childElementCount;
				
				// insert element
				x.insertBefore(new_field, x.childNodes[pos]);
			}
		</script>
	</body>
</html>

Explanation

Here we created a function named add_field to append a text field at the second last position in the form.

Note: Here, we set every field name as text_field[], which submits all text field data as an array.

Read Also: How to Remove On-Page Errors in PHP

Step 2: Create a save_data.php file to store the data in the database

<?php
    $conn = mysqli_connect("localhost","USER_NAME","PASSWORD","DATABASE_NAME");
    
    $data = $_POST['text_field'];
    $data = implode(",",$data);
    
    $query = "INSERT INTO `test`(`data`) VALUES ('$data')";
    if(mysqli_query($conn,$query)){
        echo "Success: Data successfully inserted";
    }else{
        echo "Error: Could not insert data into table";
    }
?>

Explanation

  • Here we first stored the submitted array data in a PHP array variable named $data.
  • After that, we used an inbuilt PHP function implode(), which converts an array into a PHP string.
  • Finally, we saved our string data to our data table.

Conclusion

Creating unlimited dynamic fields is very easy using JavaScript. Even more, we learned a way to store that dynamic data into a database using some simple functions of PHP.

I hope now you have a complete understanding of dynamic field insertion and data storing techniques.

Enjoy Coding πŸ™‚

Leave a Reply

Your email address will not be published. Required fields are marked *