: : g_FORMFUNCTIONS

Různé užitečné funkce pro tvorbu formularu:
<?
  function EchoRadek($input,$jmeno) {
    //$input = str_replace("<","<",$input);

    echo "<b style=\"width: 96px\">$jmeno</b>$input<br>\n";
  }  
  $style = "border: 1px solid #000000; background: #FFFFFF";
  $styleimp = "border: 2px solid #000000; background: #FFEEEE";
  
  $ar_dulezite = array();
  echo form_start("UkazkaFrm","p");  
  in_txt("jmeno",$_COOKIE["jmeno"],array("IM32","st"=>$styleimp),16,EchoRadek,"Jméno:");
  in_txt("heslo","",array("P","IM32","st"=>$styleimp),16,EchoRadek,"Heslo:");
  in_submit("Vstoupit","UkazkaFrm",array("st"=>$style),EchoRadek,"");
  echo "<hr width=\"296px\"/>";
  in_textarea("pozn","...",array("C32","Rows3","st"=>$style),EchoRadek,"Poznámka:<br/><br/><br/>");
  in_txt("zapsat",array("zapsat"=>true),"C",0,EchoRadek,"Zapsat:");
  in_sel("opravdu",array("A"=>"Ano",""=>"Ne"),"",array("I","st"=>$style),EchoRadek,"Opravdu:");
  echo form_end();
?>
Výsledek předešlého kódu:
Jméno:
Heslo:


Poznámka:



Zapsat:
Opravdu:

Kód:
g_formfunctions.php
<? /* Formularove funkce */
if (!isset($g_textfunctions_true) && file_exists('g_textfunctions.php')) include('g_textfunctions.php');

function form_start($nazev,$post_bo_get,$action=0,$onsubmit=0) {
  $ret  = '<form name="'.$nazev.'"';
  $ret .= 'method="'.((ucfirst($post_bo_get{0})=='P')?'POST':'GET').'"';  
  if (!empty($action)) $ret .= ' action="'.$action.'"';
  if (!empty($onsubmit)) $ret .= ' onsubmit="'.$onsubmit.'"';
  $ret .= '>';
  return $ret;
}

function form_end() {
  return '</form>';
}

function in_txt($nazev,$arhodnot_bo_hodnota,$ar_bo_str_options=0,$size=0,$template_fnc=0,$arg_template=0) {
  if (!empty($ar_bo_str_options)) {
    if (is_array($ar_bo_str_options)) {
      if (!empty($ar_bo_str_options['cl'])) {
        $class=$ar_bo_str_options['cl'];
        unset($ar_bo_str_options['cl']);
      }
      if (!empty($ar_bo_str_options['st'])) {
        $style=$ar_bo_str_options['st'];
        unset($ar_bo_str_options['st']);
      }
      $ar_bo_str_options = Implode("",$ar_bo_str_options);
    }
    $ar_bo_str_options = strtoupper($ar_bo_str_options);
    for ($i=0; $i<strlen($ar_bo_str_options); $i++) 
      switch($ar_bo_str_options{$i}) {
        case 'I': $important = true; break;
        case '!': $disabled  = true; break;
        case 'D': $datetime  = true; break;
        case '%': $jen_rok   = true; break;
        case 'P': $password  = true; break;
        case 'C': $checkbox  = true; break;
        case 'S': $size = GetCislo($ar_bo_str_options); break;
        case 'T':
          if (F_function_exists($template_fnc)) 
            return $template_fnc($nazev,$arhodnot_bo_hodnota,$ar_bo_str_options,$size);
        break;
        default: // case "M"

          $max_delka = GetCislo($ar_bo_str_options); 
        break; 
      }

  }

  $ret  = '<input type="'.(isset($password)?'password':(isset($checkbox)?'checkbox':'text')).'" ';
  $ret .= 'name="'.$nazev.'"';   
  if (!isset($checkbox)) 
    $ret .= ' value="'.(is_array($arhodnot_bo_hodnota)?$arhodnot_bo_hodnota[$nazev]:$arhodnot_bo_hodnota).'"';
  else
    if ((is_array($arhodnot_bo_hodnota)?$arhodnot_bo_hodnota[$nazev]:$arhodnot_bo_hodnota)==true) $ret .= ' checked';

  if ($important) {
    //$ret .= ' style="important"';

    $GLOBALS['ar_dulezitych'][] = $nazev;
  }
  if (!empty($max_delka)) 
    $ret .= ' maxlength="'.$max_delka.'"';

  if (isset($class)) $ret .= ' class="'.$class.'"';
  if (isset($style)) $ret .= ' style="'.$style.'"';

  if (!empty($size)) 
    $ret .= ' size="'.$size.'"';
  elseif ($datetime) 
    $ret .= ' size="'.(isset($jen_rok)?'4':'11').'"';  

  if (isset($disabled)) $ret .= ' disabled';
  $ret .= '>';
  
  if (F_function_exists($template_fnc)) 
    return $template_fnc($ret,$arg_template);
  return $ret;
}

function in_textarea($nazev,$arhodnot_bo_hodnota,$ar_options=0,$template_fnc=0,$arg_template=0) {
  $ret  = '<textarea name="'.$nazev.'"';
  if (!empty($ar_options) && is_array($ar_options)) {
    if (!empty($ar_options['cl'])) {
      $class=$ar_options['cl'];
      unset($ar_options['cl']);
    }
    if (!empty($ar_options['st'])) {
      $style=$ar_options['st'];
      unset($ar_options['st']);
    }
    reset($ar_options);
    while(list(,$val)=each($ar_options)) 
      switch(UcFirst($val{0})) {
        case 'C': $ret .= ' cols="'.GetCislo($val).'"'; break;
        case 'R': $ret .= ' rows="'.GetCislo($val).'"'; break;
        case 'M': $ret .= ' maxlength="'.GetCislo($val).'"'; break;      
        case 'I': $important = true; break;
        case '!': $disabled  = true; break;
      }
  }
  if (isset($diabled)) $ret .= ' disabled'; 
  if (isset($class)) $ret .= ' class="'.$class.'"';
  if (isset($style)) $ret .= ' style="'.$style.'"';
  if (isset($important)) {
    //$ret .= ' style="important"';

    $GLOBALS['ar_dulezitych'][] = $nazev;
  }
  $ret .= '>'.(is_array($arhodnot_bo_hodnota)?$arhodnot_bo_hodnota[$nazev]:$arhodnot_bo_hodnota).'</textarea>';
  if (F_function_exists($template_fnc)) 
    return $template_fnc($ret,$arg_template);
  return $ret;
}

function in_sel($nazev,$arvyber,$arhodnot_bo_hodnota,$ar_bo_str_options=0,$template_fnc=0,$arg_template=0) {
  $ret  = '<select name="'.$nazev.'"';
  if (!empty($ar_bo_str_options)) {
    if (is_array($ar_bo_str_options)) {
      if (!empty($ar_bo_str_options['cl'])) {
        $class=$ar_bo_str_options['cl'];
        unset($ar_bo_str_options['cl']);
      }
      if (!empty($ar_bo_str_options['st'])) {
        $style=$ar_bo_str_options['st'];
        unset($ar_bo_str_options['st']);
      }
      $ar_bo_str_options = Implode("",$ar_bo_str_options);
    }
    $ar_bo_str_options = strtoupper($ar_bo_str_options);
    for ($i=0; $i<strlen($ar_bo_str_options); $i++) 
      switch($ar_bo_str_options{$i}) {
        case 'R': $ret .= ' size="'.GetCislo($ar_bo_str_options).'"'; break;
        case 'M': $ret .= ' multiselect'; break;      
        case 'I': $important = true; break;
        case '!': $disabled  = true; break;
        case 'T':
          if (F_function_exists($template_fnc)) 
            return $template_fnc($nazev,$arhodnot_bo_hodnota,$ar_bo_str_options,$size);
        break;
      }
  }
  if (isset($diabled)) $ret .= ' disabled'; 
  if (isset($class)) $ret .= ' class="'.$class.'"';
  if (isset($style)) $ret .= ' style="'.$style.'"';

  if (isset($important)) {
    //$ret .= ' style="important"';

    $GLOBALS['ar_dulezitych'][] = $nazev;
  }
  $ret .= '>'."\n";
  if (is_array($arvyber)) {
    $hodnota = (is_array($arhodnot_bo_hodnota)?$arhodnot_bo_hodnota[$nazev]:$arhodnot_bo_hodnota);
    reset($arvyber);
    while(list($k,$v)=each($arvyber))
      $ret .= '<option value="'.$k.'"'.(($k==$hodnota)?' selected':'').'>'.$v.'</option>';
  }
  $ret .= "\n".'</select>';
  if (F_function_exists($template_fnc)) 
    return $template_fnc($ret,$arg_template);
  return $ret;
}

function javadotaz_building($formname) {
  $ar_dulezitych =& $GLOBALS['ar_dulezitych'];
  $ret = '';
  if (!empty($ar_dulezitych) && is_array($ar_dulezitych) && count($ar_dulezitych)>0) {
    $javadotaz .= 'javascript: (';
    reset($ar_dulezitych);
    while (list(,$polozka) = each($ar_dulezitych)) {
      $polval = ''.$formname.'.'.$polozka.'.value';
      $javadotaz .= (isset($prv)?' || ':$prv='').'('.$polval.' == \'\')';
    }
    $javadotaz .= ') ? alert(\'Není všechno vyplněno!\') : '.$formname.'.submit()';
  }
  return $javadotaz;
}

function in_submit($val='',$do_dulezite_false_bo_formname=false,$ar_options=0,$template_fnc=0,$arg_template=0) {
  $ret  = '<button ';
  if (!empty($ar_options) && is_array($ar_options)) {
    if (!empty($ar_options['cl'])) {
      $class=$ar_options['cl'];
      unset($ar_options['cl']);
    }
    if (!empty($ar_options['st'])) {
      $style=$ar_options['st'];
      unset($ar_options['st']);
    }
  }
  if (empty($do_dulezite_false_bo_formname) || ($do_dulezite_false_bo_formname==False)) 
    $ret .= 'type="submit"';
  else {
    $javadotaz = javadotaz_building($do_dulezite_false_bo_formname);
    if (empty($javadotaz)) $ret .= 'type="submit"';
    else 
      $ret .= 'type="button" onclick="'.$javadotaz.'"';
  }  
  if (isset($class)) $ret .= ' class="'.$class.'"';
  if (isset($style)) $ret .= ' style="'.$style.'"';
  $ret .= '>'.(!empty($val)?$val:'Odeslat').'</button>';
  if (F_function_exists($template_fnc)) 
    return $template_fnc($ret,$arg_template);
  return $ret;
}
?>