PHP Center
http://phpcenter.eu/
Foorumi teema printimine


Foorumid Programmeerimine Värsked skriptid Vormi tekitamise klass v1
Autor Postitus
mrq

Postitusi: 338
Tase: 6
Olek: Offline

04.02.2003 20:46:05
Vormi tekitamise klass v1

Sain kah ühe vormi tekitamise klassi valmis.
Keegi võiks seletada kuidas teha mitme valikuga elemente korrektselt. Hetkel veidi suxib see asi seal. Kasvõi see radiobuttoniga!
Muidumeez, kuidas sina selle lahendasid?
PHP kood:

<?php
/**
 * Selle klassiga saab vorme tekitada
 * Versioon 1.0
 * Autor: Mrq
 * Loodud: 3.02.2003
 * Muudetud: 3.02.2003
 */
class form {
    
/**
     * asetus, right,left,center
     */
    
var $align;
    
/**
     * üles, alla, keskel
     */
    
var $valign;
    
/**
     * tausta värv
     */
    
var $bgcolor;
    
/**
     * sisestuse nimi
     */
    
var $name;
    
/**
     * mitu veergu ehk col vaja
     */
    
var $veerge;
    
/**
     * palju aga olemas on
     */
    
var $olemas_veerge;
    
/**
     * Kõik vormi elemendid, mis vähegi võimalik checkbox,radio,file,image,textarea,text,password,submit,reset,button
     */
    
function input($name$type "text"$value ""$size ""$max ""$lisa "")
    {
        global 
$_REQUEST;
        if (empty(
$value) AND isset($_REQUEST)) {
            while (list(
$index$vaartus) = each($_REQUEST)) {
                if (
$index == $name) {
                    
$value $vaartus;
                } 
            } 
        } 
        
/**
         * väljasta valitud tyyp
         */
        
switch ($type) {
            case 
"tyhi":
                
$valja $value;
                
$this->olemas_veerge++;
                break;
            case 
"checkbox":
                
$valja '<input name="' $name '" type="checkbox" value="' $value '" ' $lisa '">';
                break;
            case 
"radio" OR "radiobutton":
                
$valja '<input name="' $name '" type="radio" value="' $value '" ' $lisa '>';
                break;
            case 
"file":
                
$piirangud "";
                if (!empty(
$size))
                    
$piirangud .= 'cols="' $size '" ';
                if (!empty(
$max))
                    
$piirangud .= 'rows="' $max '" ';
                
$valja '<input name="' $name '" type="file" ' $piirangud '>';
                break;
            case 
"image":
                
$piirangud "";
                if (!empty(
$size))
                    
$piirangud .= 'width="' $size '" ';
                if (!empty(
$max))
                    
$piirangud .= 'height="' $max '" ';
                
$valja '<input name="' $name '" type="image" src="' $value '" ' $piirangud ' ' $lisa '>';
                break;
            case 
"textarea":
                
$piirangud "";
                if (!empty(
$size))
                    
$piirangud .= 'cols="' $size '" ';
                if (!empty(
$max))
                    
$piirangud .= 'rows="' $max '" ';
                
$valja '<textarea name="' $name '" ' $piirangud ' ' $lisa '>' $value '</textarea>';
                break;
            case 
"password":
                
$piirangud "";
                if (!empty(
$size))
                    
$piirangud .= 'size="' $size '" ';
                if (!empty(
$max))
                    
$piirangud .= 'maxlength="' $max '" ';
                
$valja '<input name="' $name '" id="' $name '" type="password" ' $piirangud ' ' $lisa '>';
                break;
            case 
"submit":
                
$valja '<input name="' $name '" type="submit" value="' $value '" ' $lisa '>';
                break;
            case 
"button":
                
$valja '<input name="' $name '" type="button" value="' $value '" ' $lisa '>';
                break;
            case 
"reset":
                
$valja '<input name="' $name '" type="reset" value="' $value '" ' $lisa '>';
                break;
            default:
                
$piirangud "";
                if (!empty(
$size))
                    
$piirangud .= 'size="' $size '" ';
                if (!empty(
$max))
                    
$piirangud .= 'maxlength="' $max '" ';
                
$valja '<input name="' $name '" id="' $name '" type="text" value="' $value '" ' $piirangud ' ' $lisa '>';
        } 
        return 
$valja "n";
    } 
    
/**
     * select ehk valikmenüü
     */
    
function select($nimi 0$masiiv 0$selected 0$tegevus 'onchange="this.form.submit()"')
    {
        if (isset(
$nimi) AND is_array($masiiv)) {
            if (
count($masiiv) > 1) {
                
$valja '<select name="' $nimi '" ' $tegevus '>' "n";
                if (
is_array($masiiv)) {
                    while (list(
$vaartus$kiri) = each($masiiv)) {
                        if (
$selected == $vaartus)
                            
$valja .= '<option value="' $vaartus '" selected="selected">' $kiri '</option>' "n";
                        else
                            
$valja .= '<option value="' $vaartus '">' $kiri '</option>' "n";
                    } 
                } 
                
$valja .= '</select>' "n";
            } else {
                list(
$vaartus$kiri) = each($masiiv);
                
$valja '<input name="' $nimi '" type="hidden" value="' $vaartus '">';
            } 
            return 
$valja "n";
        } else {
            return 
0;
        } 
    } 
    
/**
     * Vormi algus
     */
    
function algus($name "form"$action ""$method "post"$enctype "multipart/form-data")
    {
        
$this->name $name;
        echo
'<form action="' $action '" method="' $method '" enctype="' $enctype '" name="' $name '">' "n";
    } 
    
/**
     * Tabeli algus
     */
    
function tabel($align "center"$border "0"$width "100%"$height "100%"$padding "2"$spacing "2"$brdcolor "#FFFFFF"$bgcolor "#FFFFFF")
    {
        
$this->align $align;
        
$this->bgcolor $bgcolor;
        echo
'<table align="' $align '" border="' $border '" width="' $width '" height="' $height '" cellpadding="' $padding '" cellspacing="' $spacing '" bordercolor="' $brdcolor '" bgcolor="' $bgcolor '">' "n";
    } 
    
/**
     * väljasta vormi nimi
     */
    
function nimi($name ""$align ""$valign ""$veerge "2")
    { 
        
// annan uue väärtuse
        
if (!empty($name))
            
$this->name $name
        
// annan uue väärtuse
        
if (!empty($align))
            
$this->align $align
        
// uus muutuja vajab väärtust
        
$this->veerge $veerge;
        echo
'<tr align="' $this->align '"> 
      <td colspan="' 
$this->veerge '">' $this->name '</td>
    </tr>' 
"n";
    } 
    
/**
     * Väljasta mingi vormi element
     */
    
function element($nimi ""$tyyp "text"$value ""$align ""$valign ""$bgcolor ""$size ""$max ""$lisa "")
    {
        
$this->valign $valign;
        
$this->bgcolor $bgcolor;
        if (empty(
$this->olemas_veerge))
            
$this->olemas_veerge 0;
        echo
'<tr>' "n";
        if (isset(
$this->veerge)) {
            if (
$this->veerge == 1) {
                echo
'<td align="' $align '" valign="' $valign '" bgcolor="' $bgcolor '">' $nimi '</td>
                </tr>
                <tr>
                <td align="' 
$align '" valign="' $valign '" bgcolor="' $bgcolor '">' $this->input($nimi$tyyp$value$size$max$lisa) . '</td>' "n";
                
$this->olemas_veerge 1;
            } elseif (
$this->veerge >= 2) {
                echo
'<td align="' $align '" valign="' $valign '" bgcolor="' $bgcolor '">' $nimi '</td>';
                if (
$tyyp == "tyhi" AND $this->veerge 2)
                    echo
'<td align="' $align '" valign="' $valign '" bgcolor="' $bgcolor '">&nbsp;</td>';
                else
                    echo
'<td align="' $align '" valign="' $valign '" bgcolor="' $bgcolor '">' $this->input($nimi$tyyp$value$size$max$lisa) . '</td>';
                
$this->olemas_veerge 2;
            } 
            if (
$this->olemas_veerge $this->veerge) {
                if (
$tyyp == "tyhi") {
                    echo
'<td align="' $this->align '" valign="' $this->valign '" bgcolor="' $this->bgcolor '">' $this->input($nimi$tyyp$value$size$max$lisa) . '</td>';
                } else {
                    echo
'<td align="' $align '" valign="' $valign '" bgcolor="' $bgcolor '">&nbsp;</td>';
                } 
                
$this->olemas_veerge++;
            } else {
                echo
'</tr>';
            } 
        } 
    } 
    
/**
     * Lõpetame tabeli ja vormi
     */
    
function lopp()
    {
        echo
'</table></form>';
    } 

$vormi = new form;
?>



mrq

Postitusi: 338
Tase: 6
Olek: Offline

04.02.2003 20:47:25
RE: Vormi tekitamise klass v1

Piirangud kah peal ;) 10000, üle selle ei lasknud panna, eks panen lisa postitusena ka klassi kasutamise!
PHP kood:

$vormi->ise("test","","post");
$vormi->tabel("center",0,500,100,0,0,"","");
$vormi->nimi("Test","center","",3);
            
if(isset(
$_REQUEST['kapsas'])){
        
$vormi->element("kapsas","text",$_REQUEST['kapsas'],"left","top","#84D951","21","20")."\n";
        
$vormi->element("","tyhi","siia tuleb viga","center","top","#84D951","21","20")."\n";
}else{
        
$vormi->element("kapsas","text","","left","top","#84D951","21","20")."\n";
        
$vormi->element("","tyhi","siia tuleb viga","center","top","#84D951","21","20")."\n";
}
if(isset(
$_REQUEST['jalg'])){
        
$vormi->element("jalg","textarea",$_REQUEST['jalg'],"left","top","#999999","21","20")."\n";
        
$vormi->element("","tyhi","siia tuleb viga","center","top","#84D951","21","20")."\n";
}else{
        
$vormi->element("jalg","textarea","","left","top","#999999","21","20")."\n";
        
$vormi->element("","tyhi","siia tuleb viga","center","top","#84D951","21","20")."\n";
}
if(isset(
$_REQUEST['Meeldib'])){
        if(
$_REQUEST['Meeldib'] == 1)
                
$vormi->element("Meeldib","radio","1","left","top","#999999","21","20",'checked="checked"')."\n";
        else
                
$vormi->element("Meeldib","radio","1","left","top","#999999","21","20")."\n";
        if(
$_REQUEST['Meeldib'] == 2)
                
$vormi->element("Meeldib","radio","2","left","top","#999999","21","20",'checked="checked"')."\n";
        else
                
$vormi->element("Meeldib","radio","2","left","top","#999999","21","20")."\n";
        
$vormi->element("","tyhi","siia tuleb viga","center","top","#84D951","21","20")."\n";
}else{
        
$vormi->element("Meeldib","radio","1","left","top","#999999","21","20")."\n";
        
$vormi->element("Meeldib","radio","2","left","top","#999999","21","20")."\n";
        
$vormi->element("","tyhi","siia tuleb viga","center","top","#84D951","21","20")."\n";
}
$vormi->element("fail","file","fail","left","#999999")."\n"
$vormi->element("","submit","Sisesta","right","#999999")."\n";
$vormi->lopp();



muidumeez
Ignorantia non est
argumentum

Postitusi: 3864
Tase: Administraator
Olek: Offline

05.02.2003 10:18:20
kurb RE: Vormi tekitamise klass v1

Einoh, jah, klass nagu klass ikka. Aga vaat kasutamin ... kui tahad ikka teha vormi, siis sellise pika definitsiooni tegemine on ikka päääääris jube ...

Panin püsti ka oma klassi vormide tekitamiseks. Allpool on toodud samuti vormi definitsioon:

PHP kood:

  include "tabinp.php"# inkljuudime klassi definitsiooni


  
$FORM = new InputForm(); # loome uue vormi

  
$FORM->FormName "SISEND"# Anname vormile nimi
  
$FORM->TabAlign "CENTER"# vorm tsentreeritakse
  
$FORM->TabCellSpacing 1# vormi kärgede vahel on 1 pixel

  
$FORM->TabBGCOLOR "BLACK"# Tabeli üldine taust on musta värvi
  
$FORM->TabTRBG "white"# Tabeli kärgede taustavärv on valge
# kaks viimast parameetrit tekitavad peene musta joone kärgede vahele

  
$FORM->SetInput("Tere. See on laiendus (sisendvormid)"); 

# Ütleme, et tegu on kaheveerulise sisendaknaga, mille pealkiri on ...
# Allpool defineerime mõned vormingu sisendid
# Meetod on Inp($prompt,$fieldname,$fieldtype="TX", $length=10,$default = "")
# Sisendmeetodid on : TX - lihtsalt tekst, sisendit ei ole
#     IN - tavaline <INPUT TYPE=TEXT>
#    CB  - checkbox
#    TA  - TEXTAREA
#    RB  - radiobutton
#    SN  - <SELECT, tagastatakse number
#    ST - <SELECT, tagastatakse tekst
#    FL - <INPUT TYPE=FILE
#    jne jne, tegelikult on erinevaid meetodeid 20

  
$FORM->Inp("Tere *","tere","IN","20",$_POST["tere"]);

# tärnike tähendab, et tegu on kohustusliku väljaga
# Saab määrata ka meetodiga SetRequired($fieldname, $message)
  
$FORM->Inp("Kes sa oled","kessaoled","TA","60",$_POST["kessaoled"]);
  
$FORM->Inp("Vanus","vanus","ST",",,1-10,,11-20,,21-30,,31-40,,40 ja vanem",$_POST["vanus"]);
  
$FORM->Last("&nbsp;Sugu:&nbsp;");
  
$FORM->Last("sugu","ST","M,,N",$_POST["sugu"]);
  
$FORM->Inp("Miski number","nummer","SN","1,,2,,3,,4,,5,,6",$_POST["nummer"]);
  
$FORM->Inp("Tsekpoks","tb","CB","",$_POST["tb"]);
  
$FORM->Txt("Kuidas meeldib");

# Meetod Last lisab välja viimase defineeritud välja järele

  
$FORM->Last("Jah");
  
$FORM->Last("meeldib","RB","1",$_POST["meeldib"]);
  
$FORM->Last("&nbsp;Ei :&nbsp;");
  
$FORM->Last("meeldib","RB","2",$_POST["meeldib"]);
  
$FORM->Inp("Laadime faili","filee","FL","40",$_POST["filee"]);

# Määrame SUBMIT nupu koos tekstiga
  
$FORM->SetOk("Okei");


# Joonistame vormi
  
$FORM->Draw();


Vaadata saab tulemust siit. Klasse ise saad osta siit

mrq

Postitusi: 338
Tase: 6
Olek: Offline

05.02.2003 11:30:20
RE: Vormi tekitamise klass v1

Tegin valmis uue vormi versiooni 1.0.0.1 aga seda enam ei mahu siia postitame :P
Aga vormi tekitab selline asi valmis! Veidi lühem ;)
Selle klassi manual on siin
PHP kood:

/*Teen globaalseks*/ 
if(isset($_REQUEST)) { 
    while (list(
$index$vaartus) = each($_REQUEST)) {
        echo 
$index.'=>'.$vaartus.'';
        
$index $vaartus;
    }
}
/*raadio buttoni jaoks tekitan lisa väärtused, et saaks panna selekteeritud või mitte*/
$lisa1="";
$lisa0="";
if(
$meeldib==1){
        
$lisa1='checked="checked"';
}elseif(
$meeldib==0){
        
$lisa0='checked="checked"';
}
$vormi = new form;//kutsume klassi välja
$vormi->vorm("Test","","GET");//vormi nimi ja meetod sisse. Võimalikud varjandid $name, $action, $method = "post", $enctype = ""
$vormi->tabel("center""1""400""200""black");//tabeli algus, kus paikneb, joon, kõrgus, laius, joone värv jne.
$vormi->element("Kui vana olete?"$vormi->input("vanus""text"$vanus43), 2"left""middle" "#84D951");//siin tekitan veeru koos input fieldiga
$vormi->element("Valige fail"$vormi->input("fail""file"$fail), 2"left""middle" "#FFFFF1");//sama ka siin ainult tegu on file browsega ja see sõidab üle enctype ja methodi. Eelmised seaded ei kehti enam ;) Kaval?
$vormi->element("Kas meeldib?"'Jah'.$vormi->input("meeldib""radio""1","","",$lisa1).'Ei'.$vormi->input("meeldib""radio""0","","",$lisa0), 2"left""middle" "#FFFFF1");//valik radiot
$vormi->element(""$vormi->input("Sisse""submit""Sisse"), 2"center""middle" "#84D951");//nupuke
$vormi->lopp("Kuidas teile meeldib?""left");//Siin siis väljastame kõik ja paneme asjale ka nime ning kus tekst aseteseb ;)



mihkel

Postitusi: 1324
Tase: 9
Olek: Offline

05.02.2003 18:56:42
RE: Vormi tekitamise klass v1

Peab ütlema, et manuaal on küll väga meeldivalt vormistatud. Kahjuks on aga manuaali JS-funktsionaalne pool kannatada saanud ning leht on "Done, but with errors."...
;)