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