Avatar billede dank Nybegynder
27. maj 2003 - 15:14 Der er 11 kommentarer og
2 løsninger

Hjælp til lille funktion

Problem: Jeg har en formular. Jeg har noget valideringskode som sætter en fejl, afhængig af problem, f.eks,

$error_form_navn="Skal udfyldes";
$error_form_adresse="Skal mindst være 2 tegn";
$error_form_postnr="Skal være 4 tal";

Der kan være flere (og forskellige) fejlmeddelelser til hvér form felt.

Idéen er så at jeg i fomularen vil indsætte en funktion, fremfor 7 linier kode hvér gang. så jeg f.eks. kunne kalde med

testerror($error_form_navn);

eller

testerror($error_form_adresse);

Funktionen skal så teste om den pågælde "fejl er sat", og evt. udskrive fejlen der måtte stå i variablen.

Dette her er hvad jeg har nået indtil jeg er gået i stå:

<? function testerror() {
global $error_form_navn;
if (isset($error_form_navn)) {
echo "$error_form_navn";
}
}
?>

Er der nogen der kan hjælpe mig videre så denne vil virke uanset hvad jeg kalder/tester den på?
Avatar billede avminarm Juniormester
27. maj 2003 - 15:20 #1
<? function testerror() {
global $error_form_navn;
if (empty($error_form_navn)) {
echo "Deu har ikke skrevet noget:".$error_form_navn;
}
}
?>
Avatar billede fangel Nybegynder
27. maj 2003 - 15:20 #2
fx noget i denne stil:

---
<?php

//funktionen
function Check4Error($type){
  if($type == "navn"){
    global $error_form_navn;
    if(isset($error_form_navn)){
      echo $error_form_navn;
    }
  }
  elseif($type == "adresse"){
    global $error_form_adress;
    if(isset($error_form_adress)){
      echo $error_form_adresse;
    }
  }
  // osv...
}

// test af den
$error_form_adresse="Skal mindst være 2 tegn";

Check4Error("navn"); // laver intet
Check4Error("adresse"); // burde udskrive noget...

?>
---

Morten
Avatar billede avminarm Juniormester
27. maj 2003 - 15:21 #3
du skal ikke have "" rundt om en variabel du echo'er sådan her skal det være: echo $var;
Avatar billede fangel Nybegynder
27. maj 2003 - 15:22 #4
eller evt:

---
<?php

// funktionen
function Check4Error_byName($name){
  global $$name;
  if(isset($$name)){
    echo $$name;
  }
}

//test:

$error_form_adresse="Skal mindst være 2 tegn";

Check4Error_byName("error_form_navn"); // laver intet
Check4Error_byName("error_form_adresse"); // burde udskrive noget...

?>
---

Morten
Avatar billede fangel Nybegynder
27. maj 2003 - 15:28 #5
avminarm => når det er variabler kan man selv vælge om det skal være:

echo "$var";
echo $var;
echo <<<EOD
$var
EOD; // sidste er overkill, men man kan...

men dette virker ikke

echo '$var';

Morten
Avatar billede tipsen Nybegynder
27. maj 2003 - 15:46 #6
Når du er træt af alt det koderi kan jeg anbefale HTML_QuickForm fra PEAR (pear.php.net), hvor der er mulighed for både client- og serverside validering med få liniers kode...

Eksempel på brug af klassen til at lave en gæstebogsform med forskellige felter, automatisk trimning af felter (fjerner unødvendige white-spaces), client-side validering (genererer selv cross-browser kompatibelt javascript) samt server-side validering (hvis klienten har disablet javascript!)

$form->addHeader('Sign the guestbook');
$form->addElement('hidden', 'cid', $cid);
$form->addElement('text', 'name', 'Name:', array('class' => 'stdinput'));
$form->addElement('text', 'email', 'Email:', array('class' => 'stdinput'));
$form->addElement('text', 'country', 'Country:', array('class' => 'stdinput'));
$form->addElement('text', 'homepage', 'Homepage:', array('class' => 'stdinput'));
$form->addElement('textarea', 'message', 'Message:', array('class' => 'stdinput', 'rows' => '8', 'cols' => '10'));

// Creates a group of buttons to be displayed at the bottom of the form
$buttons[] = &HTML_QuickForm::createElement('submit', 'preview', 'Preview', array('class' => 'stdbutton'));
$buttons[] = &HTML_QuickForm::createElement('submit', 'submit', 'Send Message', array('class' => 'stdbutton'));
$form->addGroup($buttons);

// applies new filters to the element values
$form->applyFilter('__ALL__', 'trim');
//$form->applyFilter('__ALL__', 'addslashes');

// Adds some clientside validation rules
$form->addRule('name', 'Name is a required field', 'required', '', 'client');
$form->addRule('email', 'Email is not required, but should be valid if supplied', 'emailorblank', '','client');
$form->addRule('message', 'Message is a required field', 'required', '','client');

// Adds some serverside validation rules
$form->addRule('name', 'Name is a required field', 'required');
$form->addRule('email', 'Email is not required, but should be valid if supplied', 'emailorblank');
$form->addRule('message', 'Message is a required field', 'required');

$form->display();
Avatar billede tipsen Nybegynder
27. maj 2003 - 15:50 #7
Det skal lige nævnes, at klassen er meget fleksibel og man kan bruge sine egne templates og klasser for at styre udseende ligesom man kan udbygge klassen med metoder/funktioner for at tilpasse den til ens behov.
Avatar billede dank Nybegynder
27. maj 2003 - 16:29 #8
ja den ser fin ud tipsen - rigtigt fin ud endda, men det bliver bare hurtigt for avanceret for mig. Jeg aner dårligt hvor jeg skal starte og slutte med sådan en klasse i forhold til at den skal passe sammen med resten af mit skræddersyede dokument.

Men jeg tror aligevel jeg lige vil prøve at dykke ned i den og se om jeg kan hitte ud af det.

Dea_pg> Dit ser ud til at virker. svar?
Avatar billede tipsen Nybegynder
27. maj 2003 - 18:24 #9
dank: Der er omkring 10 eksempelfiler med klassefilerne - og de dækker vist de fleste behov der måtte være for alternativer. Ellers er der også en pear-nyhedsgruppe, hvor programmøren er meget hjælpsom!
Avatar billede dank Nybegynder
27. maj 2003 - 18:58 #10
tipsen> ok.. jeg har lige fristet mig til at installere det, og det ser ikke helt uoverskueligt ud. Det vil jeg afprøve næste gang jeg skal lave en formular.

jeg hæver point lidt, så tipsen hvis du opretter svar, får du lidt for dagens gode tip :)
Avatar billede dank Nybegynder
27. maj 2003 - 18:58 #11
Dea> vil du også oprette svar?
Avatar billede tipsen Nybegynder
27. maj 2003 - 19:15 #12
never mind - jeg er glad nok for at folk begynder at bruge pear - synes det er en genial ressource!
Avatar billede fangel Nybegynder
28. maj 2003 - 08:04 #13
svaa'r <= sorry, var kultural igår ;) det skal jo også til...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester