Micro-form is a library to translate any datasource into into html form elements. Only Json Objects can be use as datasources., (*1)
Installation
First you need to install Composer. You may do so by following the instructions at getcomposer.org. After that run, (*2)
composer require fullstackpe/micro-form, (*3)
If you prefer you can create a composer.json in your project folder., (*4)
{
"require": {
"fullstackpe/micro-form": "^3.0"
}
}
How it works?
Create a jsform
object., (*5)
use micro\FormFactory;
$jsonForm = FormFactory::jsonForm();
echo $jsonForm->render($json);
then call render to get the form elements. The render method accepts a Json Object., (*6)
Examples, (*7)
Input, (*8)
<?php
$json = '[
{
"tag": "input",
"type": "text",
"name": "username",
"class": "form-control"
}
]';
use micro\FormFactory;
$jsonForm = FormFactory::jsonForm();
echo $jsonForm->render($json);
output, (*9)
<input type="text" name="username" class="form-control">
Textarea, (*10)
<?php
$json = '[
{
"tag": "textarea",
"id": "story",
"name": "story",
"rows": "5",
"cols": "33",
"value": "It was a dark and stormy night..."
}
]';
use micro\FormFactory;
$jsonForm = FormFactory::jsonForm();
echo $jsonForm->render($json);
output, (*11)
<textarea id="story" name="story" rows="5" cols="33">
It was a dark and stormy night...
</textarea>
Select, (*12)
<?php
$json = '[
{
"tag": "select",
"name": "pets",
"id": "pet-select",
"value": [
{
"tag": "option",
"label": "--Please choose an option--",
"value": ""
},
{
"tag": "option",
"label": "Dog",
"value": "dog"
},
{
"tag": "option",
"label": "Cat",
"value": "cat"
}
]
}
]';
use micro\FormFactory;
$jsonForm = FormFactory::jsonForm();
echo $jsonForm->render($json);
output, (*13)
<select name="pets" id="pet-select">
<option value="">--Please choose an option--</option>
<option value="dog">Dog</option>
<option value="cat">Cat</option>
</select>
Contribution
Feel free to contribute! Just create a new issue or a new pull request., (*14)
License
This library is released under the MIT License., (*15)