PHPackages                             jazmy/jaz-form-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. jazmy/jaz-form-builder

ActiveLibrary

jazmy/jaz-form-builder
======================

Laravel Package for Creating a Drag-and-Drop Form Builder Using JQuery Form Builder

9811.6k↓100%56[14 issues](https://github.com/jazmy/laravel-formbuilder/issues)JavaScript

Since Oct 8Pushed 5y ago11 watchersCompare

[ Source](https://github.com/jazmy/laravel-formbuilder)[ Packagist](https://packagist.org/packages/jazmy/jaz-form-builder)[ RSS](/packages/jazmy-jaz-form-builder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Form Builder Package
============================

[](#laravel-form-builder-package)

Note: THIS PACKAGE MAY NOT B COMPATIBLE WITH LARAVEL 7 or 8. I am no longer maintaining this package so please use the code for reference on how to create a jquery form builder.

A [Laravel](https://laravel.com) package for creating a drag-and-drop form builder using the [JQuery Form Builder](https://formbuilder.online).

Demo:

*Note: Features like email, registration and file uploads are disabled in the demo*

Screenshot:

[![alt text](https://camo.githubusercontent.com/2dfd4176cd0191ffeec7ff6f526d19b1cbad65f25c3ffeb84fea4d02a1d5b2b7/687474703a2f2f64656d6f666f726d2e6a617a6d792e636f6d2f696d672f666f726d6275696c64657264656d6f5f73637265656e73686f742e6a7067 "Form Builder Screenshot")](https://camo.githubusercontent.com/2dfd4176cd0191ffeec7ff6f526d19b1cbad65f25c3ffeb84fea4d02a1d5b2b7/687474703a2f2f64656d6f666f726d2e6a617a6d792e636f6d2f696d672f666f726d6275696c64657264656d6f5f73637265656e73686f742e6a7067)

The forms fields are saved as json and stored in your database. A member of your site can create, edit and delete forms. Forms belong to the users that created them and each form has a unique link that can be shared publicly.

The json version of the form can be used to render the form for users to fill.

Example Json Form:

```
[{"type":"header","subtype":"h1","label":"Demo Form 01"},{"type":"paragraph","subtype":"p","label":"This demo form is a potluck sign-up sheet"},{"type":"text","label":"Name","className":"form-control","name":"name","subtype":"text"},{"type":"radio-group","label":"Food Category","name":"foodcategory","other":true,"values":[{"label":"Appetizer","value":"Appetizer"},{"label":"Beverage","value":"Beverage"},{"label":"Salad","value":"Salad"},{"label":"Main","value":"Main"},{"label":"Dessert","value":"Dessert"}]},{"type":"number","label":"How many will it serve","className":"form-control","name":"numberserved","min":"1","max":"50","step":"1"},{"type":"text","label":"Dish Name","className":"form-control","name":"dishname","subtype":"text"},{"type":"checkbox-group","label":"Dietary Restrictions","description":"Which of the following does your dish contain?","name":"dietaryrestrictions","values":[{"label":"Alcohol","value":"Alcohol"},{"label":"Carbs","value":"Carbs"},{"label":"Dairy","value":"Dairy"},{"label":"Egg","value":"Egg"},{"label":"Fish","value":"Fish"},{"label":"Gluten","value":"Gluten"}]},{"type":"textarea","label":"Comment","className":"form-control","name":"comment","subtype":"textarea"}]
```

Form permission options

- Public - anyone can submit the form without needing to login
- Private - only authenticated members of your site can access the form. Provide the option for users to edit their previous submissions.

Requirements
------------

[](#requirements)

- Laravel 5.7
- MySQL
- [Laravel Authentication](https://laravel.com/docs/5.7/authentication) - php artisan make:auth

*If you are looking for a managed web host, with easy laravel site creation, then I highly recommend [Cloudways](https://www.cloudways.com/en/?id=45081). Cloudways will setup a laravel site and mysql database in minutes.*

Dependencies Included with Package
----------------------------------

[](#dependencies-included-with-package)

- jQuery UI - User interface actions built on jQuery. [View jQuery ui Documentation](https://jqueryui.com/)
- jQuery Formbuilder - Drag and drop full-featured form editing. [View jQuery Formbuilder Documentation](https://formbuilder.online)
- clipboard.js - Copy text to clipboard. [View Clipboard Documentation](https://clipboardjs.com/)
- parsley.js - JavaScript form validation library. [View Parsley Documentation](http://parsleyjs.org/)
- moment.js - Parse, validate, manipulate, and display dates and times in JavaScript. [View Moment Documentation](https://momentjs.com/)
- footable - A responsive table plugin built on jQuery and made for Bootstrap. [View FooTable Documentation](https://fooplugins.github.io/FooTable/)
- sweetalert - A beautiful replacement for site error/warning/confirmation messages. [View SweetAlert Documentation](https://sweetalert.js.org/)

Installation Instructions
-------------------------

[](#installation-instructions)

This custom package takes a couple steps to install but I will try to make it as simple as possible.

### Step One:

[](#step-one)

Edit your composer.json file manually or simply type

```
composer require jazmy/jaz-form-builder
```

### Step Two:

[](#step-two)

Ensure you have all your dependencies installed

```
composer install
```

*Note: The package will automatically register itself using [Laravel's](https://laravel.com) package discovery feature for versions 5.6 and above. This means you do not need to update your config/app.php file.*

### Step Three:

[](#step-three)

We need to add the additional database tables so run the following command

```
php artisan migrate
```

### Step Four:

[](#step-four)

Create the form package's configuration file. This will place a formbuilder.php file in your config folder. In the configuration file you can change the url path for the package's routes, layout template to use and script / style output sections.

Run the following command:

```
php artisan vendor:publish --tag formbuilder-config
```

### Step Five:

[](#step-five)

Update your blade template file. In the default laravel install the template file is located here: /resources/views/layouts/app.blade.php

You need to add tags for the new styles and scripts At the top of the blade file, just above the closing head tag:

```
@stack('styles')
```

At the bottom of the blade file, just above the closing the closing body tag:

```
@stack('scripts')
```

*Note: If you ever need to change which files are called using these @stack values, you can update the config file.*

### Step Six:

[](#step-six)

Publish the custom blade view files by running

```
php artisan vendor:publish --tag formbuilder-views
```

Publish the public assets by running

```
php artisan vendor:publish --tag formbuilder-public
```

Or you can publish everything at once with

```
php artisan vendor:publish --provider="jazmy\FormBuilder\FormBuilderServiceProvider"
```

### Step Seven:

[](#step-seven)

In order to properly link to attachments, you need to run the storage:link command which makes the storage folder publicly accessibly

```
php artisan storage:link
```

Accessing The Application
-------------------------

[](#accessing-the-application)

Ta Da! You did it! Now to access the form application.

To view submissions:

Using The Trait
---------------

[](#using-the-trait)

You can access forms and submissions that belong to a user in your application. To use the trait add a use statement to your user model class.

```
use jazmy\FormBuilder\Traits\HasFormBuilderTraits;

class User extends Authenticatable
{
    use HasFormBuilderTraits;
}
```

You can now access the user's forms and submissions by running

```
$user = User::first();

// get the user's forms
$user->forms;

// get the user's submissions
$user->submissions;

// or use static methods on the jazmy\FormBuilder\Models\Form class
$user_forms = Form::getForUser($user); // returns a paginated resultset

// the jazmy\FormBuilder\Models\Submission class also has a static method for getting the submissions
// that belong to a user
$my_submissions = Submission::getForUser($user); // returns a paginated resultset
```

Using Events
------------

[](#using-events)

The package dispatches a number of events when records are created or updated so that you can listen to these events and perform custom tasks in your application's logic

Precautions
-----------

[](#precautions)

1. Make sure you have a table name users with a colum id {bigSignedInteger} in your database.
2. Once you have submission(s) on a form , dont attempt to edit the form again bacause it will break the display of earlier submissions 3.

Acknowledgments
---------------

[](#acknowledgments)

Special Thanks to Farayola Oladele, one of the best Laravel programmers on Fiverr:  He taught me so much and I highly recommend him for assistance on your Laravel projects.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity41

Moderate usage in the ecosystem

Community21

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

 Bus Factor1

Top contributor holds 60% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b4fc40026bbf7f372f0bba23d22e9e0f6e16a13aeff86f75341630b3868cd8bf?d=identicon)[jazmy](/maintainers/jazmy)

---

Top Contributors

[![jazmy](https://avatars.githubusercontent.com/u/28543740?v=4)](https://github.com/jazmy "jazmy (9 commits)")[![stevebaros](https://avatars.githubusercontent.com/u/11651953?v=4)](https://github.com/stevebaros "stevebaros (3 commits)")[![yaroslawww](https://avatars.githubusercontent.com/u/23663794?v=4)](https://github.com/yaroslawww "yaroslawww (2 commits)")[![jmroelofs](https://avatars.githubusercontent.com/u/14312525?v=4)](https://github.com/jmroelofs "jmroelofs (1 commits)")

### Embed Badge

![Health badge](/badges/jazmy-jaz-form-builder/health.svg)

```
[![Health](https://phpackages.com/badges/jazmy-jaz-form-builder/health.svg)](https://phpackages.com/packages/jazmy-jaz-form-builder)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
