PHP PROJECT

README.md

Compose, validate and display forms with Bootstrap

This class can compose, validate and display forms with Bootstrap. It can compose and display forms with common fields using Bootstrap to render the forms using a given template in HTML. The class can also validate the submitted form values according to given validation rules. Currently it can validate each form input value as digit, as decimal, as upper and lower alphabetic text, alpha-numeric text, email address, IP address, url, hexadecimal text, float value, a login name, mac address, credit card, safe text, english text, image file, value smaller, larger or equal to a value, non-empty text, date, and matching a regular expression.

Files


NameTypeSizeLast Modified
formClass.php phpfile icon 14467 05 February 2016 08:50:08
form-example.php phpfile icon 1602 05 February 2016 08:50:08
readme.txt textfile icon 1448 05 February 2016 08:50:08
template directory icon 4096 31 March 2017 08:37:28

Source

  1. <?
  2. /*
  3. Author : Vishv sahdev
  4. Email : vishv23@gmail.com
  5. Website : v23.in
  6. Date : 14 Dec. 2015
  7. */
  8. class bootstrapformClass
  9. {
  10. //-FORM--------------------------    
  11.     
  12.     public function reload($location)
  13.     {
  14.     header('Location: '.$location);
  15.     exit;
  16.     }
  17.     
  18.     public function _dataTransfer($dataIN,$dataOUT,$keyValue='key')
  19.     {
  20.     if(!is_array($dataIN))
  21.     return false;
  22.     foreach($dataIN as $k=>$v){
  23.         if($keyValue == 'value'){
  24.             if(isset($dataOUT[$v]))
  25.             $dataIN[$v]=$dataOUT[$v];
  26.             }
  27.             else
  28.             if(isset($dataOUT[$k]))
  29.             $dataIN[$k]=$dataOUT[$k];
  30.         }
  31.     return $dataIN;
  32.     }
  33.     
  34.     public function _findValid($datain,$dataout)
  35.     {
  36.     $error=false;
  37.         foreach($datain as $k=>$v){
  38.             if(isset($dataout[$k])){
  39.             if($r=$this->_valid($dataout[$k],$v))
  40.             $error .= $r;
  41.             }
  42.         }
  43.     if($error)
  44.     return    "<ul>$error</ul>";
  45.     else
  46.     return false;
  47.     }
  48.     
  49.     public function textField($label,$name$default=''){
  50.         return '
  51.         <div class="form-group">
  52.         <label   class="col-sm-3 control-label">'.$label.'</label>
  53.         <div class="col-sm-9">      
  54.         <input type="text" class="form-control" name="'.$name.'" id="'.$name.'" value="'.$default.'" />
  55.         </div>
  56.         </div>'."\n";
  57.     }
  58.     public function buttonField($name,$color='primary'){
  59.     if(!preg_match('/default|primary|success|info|warning|danger/i'$color))
  60.     $color='default';
  61.         return '
  62.         <div class="form-group">
  63.         <div class="col-sm-offset-2 col-sm-9">
  64.         <button type="submit" class="btn btn-'.$color.'">'.$name.'</button>
  65.         </div>
  66.         </div>'."\n";
  67.     }
  68.     public function hiddenField($name,$value){
  69.         return '<input type="hidden" name="'.$name.'" value="'.$value.'" />'."\n";
  70.     }
  71.     public function formStart($action,$method='post',$name='ok'){
  72.         return '<form class="form-horizontal" action="'.$action.'" method="'.$method.'" id="'.$name.'">'."\n";
  73.     }
  74.     public function textareaField($label,$name,$value=''){
  75.         return '
  76.         <div class="form-group">
  77.         <label   class="col-sm-3 control-label">'.$label.'</label>
  78.         <div class="col-sm-9">    
  79.         <textarea class="form-control" rows="3" name="'.$name.'" id="'.$name.'">'.$value.'</textarea>
  80.         </div>
  81.         </div>'."\n";
  82.     }    
  83.     
  84.     public function checkboxField($label,$name$default=''){
  85.     $r '
  86.     <div class="form-group">
  87.         <div class="col-sm-offset-3 col-sm-9">
  88.             <div class="checkbox">
  89.                 <label>';
  90.                 if($default == 'on')
  91.                 $r .= '<input type="checkbox"  name="'.$name.'" id="'.$name.'" checked="checked">'.$label.'';
  92.                 else
  93.                 $r .= '<input type="checkbox"  name="'.$name.'" id="'.$name.'">'.$label.'';
  94.                 $r .= '</label>
  95.             </div>
  96.         </div>
  97.     </div>'."\n";
  98.     return $r;
  99.     }
  100.   
  101.   public function radioField($label,$name$value$default=''){
  102.     $r '
  103.     <div class="form-group">
  104.         <div class="col-sm-offset-3 col-sm-9">
  105.             <div class="radio">
  106.                 <label>';
  107.                 if($value === $default)
  108.                 $r .= '<input type="radio"  name="'.$name.'" id="'.$name.'" value="'.$value.'" checked="checked">'.$label.' ';
  109.                 else
  110.                 $r .= '<input type="radio"  name="'.$name.'" id="'.$name.'" value="'.$value.'">'.$label.' ';
  111.                 $r .= '</label>
  112.             </div>
  113.         </div>
  114.     </div>'."\n";
  115.     return $r;
  116.     }
  117.     
  118.     public function selectField($label,$name$value=array(),$default=''){
  119.         $r ='
  120.         <div class="form-group">
  121.         <label   class="col-sm-3 control-label">'.$label.'</label>
  122.         <div class="col-sm-9">      
  123.         <select  class="form-control" name="'.$name.'" id="'.$name.'">';
  124.         if(is_array($value)){
  125.             foreach($value as $k=>$v){
  126.                 if($k === $default)
  127.                  $r .= "<option value='$k' selected>$v</option>\n";
  128.                  else
  129.                  $r .= "<option value='$k'>$v</option>\n";
  130.             }
  131.         }
  132.         $r .='</select>
  133.         </div>
  134.         </div>'."\n";
  135.         return $r;
  136.     }
  137.  
  138.  
  139.     public function render_temp($file$data = array()) {
  140.         if (file_exists($file)) {
  141.             extract($data);
  142.             ob_start();
  143.             require($file);
  144.             $out ob_get_contents();
  145.             ob_end_clean();
  146.             return $out;
  147.         } else {
  148.         return false;
  149.         }
  150.     }
  151.     public function formEnd(){
  152.         return '</form>'."\n";
  153.     }
  154. //-FORM--------------------------END    
  155. //-FORM--------------------------VALIDATION
  156.         public function _valid($str,$rule)
  157.         {
  158.         $op='';
  159.         foreach(explode("|",$rule) as $r)
  160.         $op .= $this->valid($str,$r);
  161.         return $op;
  162.         }
  163.         public function valid($str,$rule)
  164.         { 
  165.         if($rule=="digit"){
  166.             if(preg_match('/^[0-9]+$/',$str))
  167.             return false;
  168.             else
  169.             return "<li>The string $str does not consist of all digits.</li>";
  170.         }
  171.         elseif(substr($rule,0,1) == "="){
  172.             if($str == substr($rule,1))
  173.             return false;
  174.             else 
  175.             return "<li>field mismatched...</li>";
  176.         }
  177.         elseif($rule=="decimal"){
  178.             if(preg_match('/^[0-9.]+$/',$str))
  179.             return false;
  180.             else
  181.             return "<li>decimal value</li>";
  182.         }
  183.         elseif($rule=="alphasmall"){
  184.             if(preg_match('/^[a-z]+$/',$str))
  185.             return false;
  186.             else
  187.             return "<li>Only all small latters ...</li>";
  188.         }
  189.         elseif($rule=="alphaupper"){
  190.             if(preg_match('/^[A-Z]+$/',$str))
  191.             return false;
  192.             else
  193.             return "<li>Only all upper latters ...</li>";
  194.         }
  195.         elseif($rule=="alpha"){
  196.             if(preg_match('/^[a-zA-Z]+$/',$str))
  197.             return false;
  198.             else
  199.             return "<li>Only all upper or small alpha (A-Z) chars ...</li>";
  200.         }
  201.         elseif($rule=="alphanum"){
  202.             if(preg_match('/^[a-zA-Z0-9]+$/',$str))
  203.             return false;
  204.             else
  205.             return "<li>Only Alpha  Numeric chars ...</li>";
  206.         }
  207.         elseif($rule=="alphaall"){
  208.         if(preg_match('/^[A-Za-z0-9_.\-+ ]+$/',$str))
  209.         return false;
  210.             else
  211.             return "<li>all chars (a-z) (A-Z) (0-9) (_.- )</li>";
  212.         }    
  213.         elseif($rule=="email"){
  214.         if(preg_match('/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/',$str)) 
  215.         return false;
  216.             else
  217.             return "<li>Valid Email ID</li>";
  218.         }            
  219.         elseif($rule=="ip"){
  220.         if(preg_match('/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/',$str))
  221.         return false;
  222.             else
  223.             return "<li>Valid IP Address...</li>";
  224.         }        
  225.         elseif($rule=="url"){
  226.         if(preg_match('/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/',$str))
  227.         return false;
  228.             else
  229.             return "<li>Valid URL Address...</li>";
  230.         }    
  231.         elseif($rule=="hex"){
  232.         if(preg_match('/^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$/',$str))
  233.         return false;
  234.             else
  235.             return "<li>Valid HEX</li>";
  236.         }    
  237.         elseif($rule=="float"){
  238.         if(preg_match('/^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$/',$str))
  239.         return false;
  240.             else
  241.             return "<li>Float Numbers</li>";
  242.         }    
  243.         elseif($rule=="name"){
  244.         if(preg_match('/^[a-zA-Z]+(([\',. -][a-zA-Z ])?[a-zA-Z]*)*$/',$str))
  245.         return false;
  246.             else
  247.             return "<li>Valid Name</li>";
  248.         }    
  249.         elseif($rule=="mac"){
  250.         if(preg_match('/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/',$str))
  251.         return false;
  252.             else
  253.             return "<li>Valid MAC Address...</li>";
  254.         }    
  255.         elseif($rule=="creditcard"){
  256.         if(preg_match('/^((4\d{3})|(5[1-5]\d{2})|(6011)|(7\d{3}))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$/',$str))
  257.         return false;
  258.             else
  259.             return "<li>Valid Credit Card Address...</li>";
  260.         }    
  261.         elseif($rule=="safetext"){
  262.         if(preg_match('/^[a-zA-Z0-9 .\-_,!]+$/',$str))
  263.         return false;
  264.             else
  265.             return "<li>Safe Text A-Z a-z 0-9  .-_,! </li>";
  266.         }    
  267.         elseif($rule=="english"){
  268.         if(preg_match('/^[ -~]+$/',$str))
  269.         return false;
  270.             else
  271.             return "<li>Valid English Chars...</li>";
  272.         }    
  273.         elseif($rule=="fullurl"){
  274.         if(preg_match('/^((((https?|ftps?|gopher|telnet|nntp):\/\/)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*\';\/?:@&=+$A-Za-z0-9])+)([).!\';\/?:][[:blank:]])?$/',$str))
  275.         return false;
  276.             else
  277.             return "<li>Full Url...</li>";
  278.         }    
  279.         elseif($rule=="imagefile"){
  280.         if(preg_match('/\w+\.(gif|png|jpg|jpeg)$/i',$str))
  281.         return false;
  282.             else
  283.             return "<li>Valid Image File gif | png | jpg | jpeg ...</li>";
  284.         }    
  285.     
  286.         elseif(substr($rule,0,3) == "lt:"){
  287.         if(strlen($str) <= substr($rule,3))
  288.                 return false;
  289.             else
  290.             return "<li>$str <= ".substr($rule,3)."</li>";
  291.         }    
  292.         elseif(substr($rule,0,3) == "gt:"){
  293.         if(strlen($str) >= substr($rule,3))
  294.                 return false;
  295.             else
  296.             return "<li>$str >= ".substr($rule,3)."</li>";
  297.         }    
  298.         elseif(substr($rule,0,3) == "eq:"){
  299.         if(strlen($str) === substr($rule,3))
  300.                 return false;
  301.             else
  302.             return "<li>".strlen($str)." == ".substr($rule,3)."</li>";
  303.         }    
  304.         elseif($rule=="required"){
  305.         if(strlen($str) > )
  306.                 return false;
  307.             else
  308.             return "<li>$str < ".substr($rule,3)."</li>";
  309.         }    
  310.         elseif($rule=="mmddyy"){
  311.         if(preg_match('^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$',$str))
  312.                 return false;
  313.             else
  314.             return "<li>mmddyy</li>";
  315.         }    
  316.         elseif(substr($rule,0,4) == "regx"){
  317.         if(preg_match('/^('.$rule.')+$/',substr($rule,4)))
  318.         return false;
  319.         else
  320.         return "<li>Invalid Regx</li>";
  321.         }
  322.         else
  323.         return false;
  324.     }
  325.     
  326.      public function country(){
  327.     return array(
  328.     'AF'=>'Afghanistan',
  329.     'AL'=>'Albania',
  330.     'DZ'=>'Algeria',
  331.     'AS'=>'American Samoa',
  332.     'AD'=>'Andorra',
  333.     'AO'=>'Angola',
  334.     'AI'=>'Anguilla',
  335.     'AQ'=>'Antarctica',
  336.     'AG'=>'Antigua And Barbuda',
  337.     'AR'=>'Argentina',
  338.     'AM'=>'Armenia',
  339.     'AW'=>'Aruba',
  340.     'AU'=>'Australia',
  341.     'AT'=>'Austria',
  342.     'AZ'=>'Azerbaijan',
  343.     'BS'=>'Bahamas',
  344.     'BH'=>'Bahrain',
  345.     'BD'=>'Bangladesh',
  346.     'BB'=>'Barbados',
  347.     'BY'=>'Belarus',
  348.     'BE'=>'Belgium',
  349.     'BZ'=>'Belize',
  350.     'BJ'=>'Benin',
  351.     'BM'=>'Bermuda',
  352.     'BT'=>'Bhutan',
  353.     'BO'=>'Bolivia',
  354.     'BA'=>'Bosnia And Herzegovina',
  355.     'BW'=>'Botswana',
  356.     'BV'=>'Bouvet Island',
  357.     'BR'=>'Brazil',
  358.     'IO'=>'British Indian Ocean Territory',
  359.     'BN'=>'Brunei',
  360.     'BG'=>'Bulgaria',
  361.     'BF'=>'Burkina Faso',
  362.     'BI'=>'Burundi',
  363.     'KH'=>'Cambodia',
  364.     'CM'=>'Cameroon',
  365.     'CA'=>'Canada',
  366.     'CV'=>'Cape Verde',
  367.     'KY'=>'Cayman Islands',
  368.     'CF'=>'Central African Republic',
  369.     'TD'=>'Chad',
  370.     'CL'=>'Chile',
  371.     'CN'=>'China',
  372.     'CX'=>'Christmas Island',
  373.     'CC'=>'Cocos (Keeling) Islands',
  374.     'CO'=>'Columbia',
  375.     'KM'=>'Comoros',
  376.     'CG'=>'Congo',
  377.     'CK'=>'Cook Islands',
  378.     'CR'=>'Costa Rica',
  379.     'CI'=>'Cote D\'Ivorie (Ivory Coast)',
  380.     'HR'=>'Croatia (Hrvatska)',
  381.     'CU'=>'Cuba',
  382.     'CY'=>'Cyprus',
  383.     'CZ'=>'Czech Republic',
  384.     'CD'=>'Democratic Republic Of Congo (Zaire)',
  385.     'DK'=>'Denmark',
  386.     'DJ'=>'Djibouti',
  387.     'DM'=>'Dominica',
  388.     'DO'=>'Dominican Republic',
  389.     'TP'=>'East Timor',
  390.     'EC'=>'Ecuador',
  391.     'EG'=>'Egypt',
  392.     'SV'=>'El Salvador',
  393.     'GQ'=>'Equatorial Guinea',
  394.     'ER'=>'Eritrea',
  395.     'EE'=>'Estonia',
  396.     'ET'=>'Ethiopia',
  397.     'FK'=>'Falkland Islands (Malvinas)',
  398.     'FO'=>'Faroe Islands',
  399.     'FJ'=>'Fiji',
  400.     'FI'=>'Finland',
  401.     'FR'=>'France',
  402.     'FX'=>'France, Metropolitan',
  403.     'GF'=>'French Guinea',
  404.     'PF'=>'French Polynesia',
  405.     'TF'=>'French Southern Territories',
  406.     'GA'=>'Gabon',
  407.     'GM'=>'Gambia',
  408.     'GE'=>'Georgia',
  409.     'DE'=>'Germany',
  410.     'GH'=>'Ghana',
  411.     'GI'=>'Gibraltar',
  412.     'GR'=>'Greece',
  413.     'GL'=>'Greenland',
  414.     'GD'=>'Grenada',
  415.     'GP'=>'Guadeloupe',
  416.     'GU'=>'Guam',
  417.     'GT'=>'Guatemala',
  418.     'GN'=>'Guinea',
  419.     'GW'=>'Guinea-Bissau',
  420.     'GY'=>'Guyana',
  421.     'HT'=>'Haiti',
  422.     'HM'=>'Heard And McDonald Islands',
  423.     'HN'=>'Honduras',
  424.     'HK'=>'Hong Kong',
  425.     'HU'=>'Hungary',
  426.     'IS'=>'Iceland',
  427.     'IN'=>'India',
  428.     'ID'=>'Indonesia',
  429.     'IR'=>'Iran',
  430.     'IQ'=>'Iraq',
  431.     'IE'=>'Ireland',
  432.     'IL'=>'Israel',
  433.     'IT'=>'Italy',
  434.     'JM'=>'Jamaica',
  435.     'JP'=>'Japan',
  436.     'JO'=>'Jordan',
  437.     'KZ'=>'Kazakhstan',
  438.     'KE'=>'Kenya',
  439.     'KI'=>'Kiribati',
  440.     'KW'=>'Kuwait',
  441.     'KG'=>'Kyrgyzstan',
  442.     'LA'=>'Laos',
  443.     'LV'=>'Latvia',
  444.     'LB'=>'Lebanon',
  445.     'LS'=>'Lesotho',
  446.     'LR'=>'Liberia',
  447.     'LY'=>'Libya',
  448.     'LI'=>'Liechtenstein',
  449.     'LT'=>'Lithuania',
  450.     'LU'=>'Luxembourg',
  451.     'MO'=>'Macau',
  452.     'MK'=>'Macedonia',
  453.     'MG'=>'Madagascar',
  454.     'MW'=>'Malawi',
  455.     'MY'=>'Malaysia',
  456.     'MV'=>'Maldives',
  457.     'ML'=>'Mali',
  458.     'MT'=>'Malta',
  459.     'MH'=>'Marshall Islands',
  460.     'MQ'=>'Martinique',
  461.     'MR'=>'Mauritania',
  462.     'MU'=>'Mauritius',
  463.     'YT'=>'Mayotte',
  464.     'MX'=>'Mexico',
  465.     'FM'=>'Micronesia',
  466.     'MD'=>'Moldova',
  467.     'MC'=>'Monaco',
  468.     'MN'=>'Mongolia',
  469.     'MS'=>'Montserrat',
  470.     'MA'=>'Morocco',
  471.     'MZ'=>'Mozambique',
  472.     'MM'=>'Myanmar (Burma)',
  473.     'NA'=>'Namibia',
  474.     'NR'=>'Nauru',
  475.     'NP'=>'Nepal',
  476.     'NL'=>'Netherlands',
  477.     'AN'=>'Netherlands Antilles',
  478.     'NC'=>'New Caledonia',
  479.     'NZ'=>'New Zealand',
  480.     'NI'=>'Nicaragua',
  481.     'NE'=>'Niger',
  482.     'NG'=>'Nigeria',
  483.     'NU'=>'Niue',
  484.     'NF'=>'Norfolk Island',
  485.     'KP'=>'North Korea',
  486.     'MP'=>'Northern Mariana Islands',
  487.     'NO'=>'Norway',
  488.     'OM'=>'Oman',
  489.     'PK'=>'Pakistan',
  490.     'PW'=>'Palau',
  491.     'PA'=>'Panama',
  492.     'PG'=>'Papua New Guinea',
  493.     'PY'=>'Paraguay',
  494.     'PE'=>'Peru',
  495.     'PH'=>'Philippines',
  496.     'PN'=>'Pitcairn',
  497.     'PL'=>'Poland',
  498.     'PT'=>'Portugal',
  499.     'PR'=>'Puerto Rico',
  500.     'QA'=>'Qatar',
  501.     'RE'=>'Reunion',
  502.     'RO'=>'Romania',
  503.     'RU'=>'Russia',
  504.     'RW'=>'Rwanda',
  505.     'SH'=>'Saint Helena',
  506.     'KN'=>'Saint Kitts And Nevis',
  507.     'LC'=>'Saint Lucia',
  508.     'PM'=>'Saint Pierre And Miquelon',
  509.     'VC'=>'Saint Vincent And The Grenadines',
  510.     'SM'=>'San Marino',
  511.     'ST'=>'Sao Tome And Principe',
  512.     'SA'=>'Saudi Arabia',
  513.     'SN'=>'Senegal',
  514.     'SC'=>'Seychelles',
  515.     'SL'=>'Sierra Leone',
  516.     'SG'=>'Singapore',
  517.     'SK'=>'Slovak Republic',
  518.     'SI'=>'Slovenia',
  519.     'SB'=>'Solomon Islands',
  520.     'SO'=>'Somalia',
  521.     'ZA'=>'South Africa',
  522.     'GS'=>'South Georgia And South Sandwich Islands',
  523.     'KR'=>'South Korea',
  524.     'ES'=>'Spain',
  525.     'LK'=>'Sri Lanka',
  526.     'SD'=>'Sudan',
  527.     'SR'=>'Suriname',
  528.     'SJ'=>'Svalbard And Jan Mayen',
  529.     'SZ'=>'Swaziland',
  530.     'SE'=>'Sweden',
  531.     'CH'=>'Switzerland',
  532.     'SY'=>'Syria',
  533.     'TW'=>'Taiwan',
  534.     'TJ'=>'Tajikistan',
  535.     'TZ'=>'Tanzania',
  536.     'TH'=>'Thailand',
  537.     'TG'=>'Togo',
  538.     'TK'=>'Tokelau',
  539.     'TO'=>'Tonga',
  540.     'TT'=>'Trinidad And Tobago',
  541.     'TN'=>'Tunisia',
  542.     'TR'=>'Turkey',
  543.     'TM'=>'Turkmenistan',
  544.     'TC'=>'Turks And Caicos Islands',
  545.     'TV'=>'Tuvalu',
  546.     'UG'=>'Uganda',
  547.     'UA'=>'Ukraine',
  548.     'AE'=>'United Arab Emirates',
  549.     'UK'=>'United Kingdom',
  550.     'US'=>'United States',
  551.     'UM'=>'United States Minor Outlying Islands',
  552.     'UY'=>'Uruguay',
  553.     'UZ'=>'Uzbekistan',
  554.     'VU'=>'Vanuatu',
  555.     'VA'=>'Vatican City (Holy See)',
  556.     'VE'=>'Venezuela',
  557.     'VN'=>'Vietnam',
  558.     'VG'=>'Virgin Islands (British)',
  559.     'VI'=>'Virgin Islands (US)',
  560.     'WF'=>'Wallis And Futuna Islands',
  561.     'EH'=>'Western Sahara',
  562.     'WS'=>'Western Samoa',
  563.     'YE'=>'Yemen',
  564.     'YU'=>'Yugoslavia',
  565.     'ZM'=>'Zambia',
  566.     'ZW'=>'Zimbabwe'
  567.     );
  568.     }
  569. }    

Demo

You can find a demo available here: html form builder

Requirment

  • mySql
  • PHP >= 5.4
  • Apache Server

Contribute

  • Vishv Sahdev

Example

>>

Download