Avatar billede NielsErikP Mester
12. juni 2011 - 13:22 Der er 9 kommentarer og
1 løsning

Genkald af Html fil fra php??

Hej..

Jeg har lavet en form med input felter til (fornavn, efternavn, email..) og har så nogle options felter på formen også(køn, fødselsdag. fødsels måned, fødsels år), Så er der en "input type=submit" knappe, hvor jeg kalder en PHP fil for at tjekke om felterne er udfyldt. Hvordan kalder man Html filen med formen frem på skærmen, fra php filen, hvis betingelserne ikke er opfyldt. Jeg tænkte at den skulle beholde det i forvejen indtastede i felterne.

Nogen der vil give mig et "Hint" til, hvad jeg skal kigge efter, evt. søge efter.

På forhånd tak..!!
Avatar billede olsensweb.dk Ekspert
12. juni 2011 - 13:35 #2
det nemmeste: lav check på felterne client side (JS) google "js form validation", men du SKAL selvføgelig også checke det serverside, får at fange de få der ikke har slået JS til.
Avatar billede repox Seniormester
12. juni 2011 - 13:46 #3
Du har et par forskellige muligheder.
Det nemmeste ville være at lade den fil du poster til være den samme som indeholder formularen.

F.eks min_formular.php.
<?php

  if( isset($_POST["navn"]) )
  {
    if( empty($_POST["navn"]) )
      $error = true;

    if( !isset($error) )
    {
      //gør med inputtet hvad du nu gerne vil
      //og viderestil til tak-siden.
      header("Location: tak.php");
      exit;
    }

  }


?>
<!DOCTYPE html>
<html>
<head>
...
<form method="post" action="min_formular.php">
<div>
  <p>
    Navn: <input type="text" name="navn" value="<?php echo (isset($_POST["navn"]) ? $_POST["navn"] : ""; ?>">
  </p>
  <p>
    <input type="submit" name="send" value="Send">
  </p>
</div>
</form>
Avatar billede olsensweb.dk Ekspert
12. juni 2011 - 13:47 #4
vær kritisk når du anvender code fra html.dk sidste opdatering 2001 :(, du vil andre steder finde mere effektiv og valid code.
Avatar billede pstidsen Novice
12. juni 2011 - 13:58 #5
#4: ... langt de fleste koder virker da!
Avatar billede NielsErikP Mester
12. juni 2011 - 14:01 #6
Hej...
Jeg er ny indenfor PHP, men det jeg egentligt ville var i PHP, jeg har sådan set lavet tjekket af felterne på formen, og dertil følgende udskrift  :



$i=0;
$Min=12;
$Max=101;
$MinLength=1;
$MaxLength=30;
$_MDR=array('Måneden du er født i skal udfyldes..!!','Januar','Februar','Marts','April','Maj','Juni','Juli',
            'August','September','Oktober','November','December');
$_YEAR=array('Året du er født skal udfyldes..!!','2011','2010','2009','2008','2007','2006','2005','2004','2003','2002','2001','2000','1999',
            '1998','1997','1996','1995','1994','1993','1992','1991','1990','1989','1988','1987','1986','1985','1984',
            '1983','1982','1981','1980','1979','1978','1977','1976','1975','1974','1973','1972','1971','1970','1969',
            '1968','1967','1966','1965','1964','1963','1962','1961','1960','1959','1958','1957','1956','1955','1954',
            '1953','1952','1951','1950','1949','1948','1947','1946','1945','1944','1943','1942','1941','1940','1939',
            '1938','1937','1936','1935','1934','1933','1932','1931','1930','1929','1928','1927','1926','1925','1924',
            '1923','1922','1921','1920','1919','1918','1917','1916','1915','1914','1913','1912','1911');



// Tjek på Fornavnet
if(isset($_POST['fornavn']) && strlen($_POST['fornavn']) <$MinLength){
    echo '<pre>';
    echo 'Feltet med fornavn skal udfyldes';
    echo '</pre>';
}
if(isset($_POST['fornavn']) && strlen($_POST['fornavn'])==$MinLength){
    echo '<pre>';
    echo 'Et fornavn skal være på mere end 1 bogstav';
    echo '</pre>';
}
if((isset($_POST['fornavn']) && strlen($_POST['fornavn'])>$MinLength && strlen($_POST['fornavn'])<$MaxLength)
&& (isset($_POST['efternavn']) && strlen($_POST['efternavn'])>$MinLength && strlen($_POST['efternavn'])<$MaxLength)){
    echo '<pre>';
    echo 'Fornavnet og Efternavn er udfyldt korrekt';
    echo '</pre>';
    Bruger_Info();
}
if(isset($_POST['fornavn']) && strlen($_POST['fornavn'])>$MaxLength){
    echo '<pre>';
    echo 'Fornavnet er ugyldigt..!!';
    echo '</pre>';
}

// Tjek på Efternavnet
if(isset($_POST['efternavn']) && strlen($_POST['efternavn'])<$MinLength){
    echo '<pre>';
    echo 'Feltet med Efternavn skal udfyldes';
    echo '</pre>';
}
if(isset($_POST['efternavn']) && strlen($_POST['efternavn'])==$MinLength){
    echo '<pre>';
    echo 'Efternavnet skal være på mere end 1 bogstav';
    echo '</pre>';
}
if(isset($_POST['efternavn']) && strlen($_POST['efternavn'])>$MinLength && strlen($_POST['efternavn'])<$MaxLength){
    echo '<pre>';
    echo 'Efternavnet er udfyldt korrekt';
    echo '</pre>';
    Bruger_Info();
}
if(isset($_POST['efternavn']) && strlen($_POST['efternavn'])>$MaxLength){
    echo '<pre>';
    echo 'Efternavnet er ugyldigt..!!';
    echo '</pre>';
}
switch ($_POST['sex']) {

    case 0 : {
        echo '<pre>';
        echo 'Du skal vælge dit køn..!!';
        echo '</pre>';
        break;
        }
    case 1 : {
        echo '<pre>';
        echo 'Du er kvinde af køn..!!';
        echo '</pre>';
        break;
        }
    case 2 : {
        echo '<pre>';
        echo 'Du er mand af køn..!!';
        echo '</pre>';
        break;
        }
    default:
        break;
}   
   
switch ($_POST['birth']) {

    case 0 : {
        echo '<pre>';
        echo 'Du skal vælge dagen du er født..!!';
        echo '</pre>';
        break;
        }
    default:  {
        echo '<pre>';
        echo 'Du er født d. '.$_POST['birth'].'.'.' i måneden';
        echo '</pre>';
        break;
        }
}       

if (in_array(isset($_POST['mdr']),$_MDR)) {
    if ($_POST['mdr']==0) {
        echo '<pre>';
        echo $_MDR[$_POST['mdr']];
        echo '</pre>';
    }
    else {
        echo '<pre>';
        echo 'Du er født i '. $_MDR[$_POST['mdr']].' måned.';
        echo '</pre>';
    }
}

if (in_array(isset($_POST['year']),$_YEAR)) {
    if ($_POST['year']==0) {
        echo '<pre>';
        echo $_YEAR[$_POST['year']];
        echo '</pre>';
    }
    else {
        echo '<pre>';
        echo 'Du er født i år '. $_YEAR[$_POST['year']].'.';
        echo '</pre>';
    }
}

if ($_POST['birth'] > 0 && $_POST['mdr'] > 0 && $_POST['year'] > 0) {
    echo '<pre>';
    echo 'Du er født d. '.$_POST['birth'].' '.$_MDR[$_POST['mdr']].' '.$_YEAR[$_POST['year']].'.';
    echo '</pre>';
}

?>




Men meningen var så egentligt at, istedet for at udskrive det indtastede, at ALERTE og så kalde html formen frem på skærmen igen efter tjekket, sådan at brugeren kan indskrive det korrekte og først når indtastningen er valid, sende dem videre.
Avatar billede repox Seniormester
12. juni 2011 - 14:02 #7
#5
Det er et spørgsmål om at ville følge med og holde opdateret til det som er relevant nu - der er bestemt ingen grund til at henvise til kodestumper og artikler som refererer til kode, standarder og problematikker der var relevante for 10 år siden. Heller ikke selvom 'langt de fleste' virker.
Avatar billede repox Seniormester
14. juni 2011 - 09:38 #8
#6
Nå, tråden gik vist i stå.

Er det fordi du har svært ved at forstå hvad jeg gør i mit forslag eller?
Avatar billede NielsErikP Mester
14. juni 2011 - 14:05 #9
Hej...
Nej.. Sådan set ikke svært ved at forstå #3, men jeg kan bare ikke få det til at virke med både php og html i html fil. Ved ikke hvad der sker. Jeg havde lavet en MinPHP.php med #6 i og en MinHTML.Html. Det funger ikke rgtigt med det i samme fil. Måske du kan lede mig på sporet ved at svare på spørgsmålet i #0, istedet for om www. html.dk er gode eller ej!!
Avatar billede NielsErikP Mester
18. juni 2011 - 10:26 #10
Hej...
Ja det var jo egentligt REPOX der skulle have haft pointene, men kan se hans brugerprofil er nedlagt. Sååååeh, pointene henter jeg selv hjem.
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