Avatar billede overgreat Forsker
30. oktober 2003 - 18:07 Der er 11 kommentarer og
1 løsning

formularproblemer mht forsvunden tekst!

Hej Alle

Håber I kan hjælpe lidt. Jeg har problemer med følgende formular.

Problemer er, at når personen ikke har udfyldt enten tlf, email eller navn, så giver den rigtigt nok en fejlmeddelse, men den sletter det personen har udfyldt i alle felterne. Hvordan får jeg den til at holde op med det?

På forhånd tak!

--------------------
Kode:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<title>ISOPLASTICON</title>

<SCRIPT LANGUAGE="JavaScript">
<!--
function swapImage(imgtag,Image)
{document [imgtag].src = Image}
//-->
</SCRIPT>
    <?php

  $allowTags = false; // set to true if you want to allow people to post code

  function isEmail($email) {
    return preg_match("/^(((([^]<>()[\.,;:@\" ]|(\\\[\\x00-\\x7F]))\\.?)+)|(\"((\\\[\\x00-\\x7F])|[^\\x0D\\x0A\"\\\])+\"))@((([[:alpha:]]([[:alnum:]]|-)*[[:alnum:]])\\.?)+|(#[[:digit:]]+)|(\\[([[:digit:]]{1,3}(\\.[[:digit:]]{1,3}){3})]))$/", $email);
  }

  function stripData($data) {
    global $allowTags;
    if ($allowTags) {
      return stripslashes($data);
    }
    else {
      return strip_tags(stripslashes($data));
    }
  }

  function htmlChars($data) {
    return htmlspecialchars(stripData($data), ENT_QUOTES);
  }

  unset($error);
  unset($mailed);
  if (isset($_POST['submit'])) {
    if (empty($_POST['navn']) || empty($_POST['email']) || empty($_POST['tlf'])  ) {
      $error = "Du skal mindst udfylde navn, telefonnummer og email";
    }
    if (!$error) {
      if (!isEmail(stripslashes($_POST['email']))) {
      $error = "Ikke gyldig email";
      }
    }
    if (!$error) {
      $body = "";
      $body .= "navn: " . stripData($_POST['navn']) . "\n";
      $body .= "email: " . stripData($_POST['email']) . "\n";
      $body .= "tlf: " . stripData($_POST['tlf']) . "\n";
      $body .= "adresse: " . stripData($_POST['adresse']) . "\n";
    $body .= "Post nr: " . stripData($_POST['post']) . "\n";
    $body .= "by: " . stripData($_POST['by']) . "\n";
      $body .= "interesse: " . stripData($_POST['int']) . "\n";
      $body .= "meddelse: " . stripData($_POST['meddelse']) . "\n";
      mail("annikahenrik@adslhome.dk", "Besked fra computer4sale", "$body", "From: \"" . stripData($_POST['navn']) . "\" <" . stripslashes($_POST['email']) . ">");
            $mailed = "Du har sendt dine informationer, og vi vil behandle dem hurtigst muligt.";
    }
  }
?>


</head>

<body bgcolor="#F0F0F0">
<center>
<table cellspacing="0" cellpadding="0" width="800" height="500">
<tr>
<td width="800" height="82" background="top.jpg" valign="top" cellspacing="0" cellpadding="0" colspan="2">

</td>
</tr>
<tr valign="top">
<td width="800" height="418" background="bag.jpg" valign="top" cellspacing="0" cellpadding="0" colspan="2">

    <table cellspacing="0" cellpadding="0" width="800" height="418">
    <tr valign="top">
    <td width="174" height="418" background="menu.jpg" valign="middle" cellspacing="0" cellpadding="0">

<?
include "menu.php"
?>

    </td>
    <td width="626" height="418" valign="top" valign="top" cellspacing="0" cellpadding="0">



<table cellspacing="0" cellpadding="0" width="626" height="418">
    <tr valign="top">
    <td width="626" height="28" background="topmenu.jpg" valign="middle" cellspacing="0" cellpadding="0">

<?
include "top.php"
?>

    </td>
    </tr>
<tr valign="top">
    <td width="626" height="347" valign="top"  cellspacing="0" cellpadding="0">


    <form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
      <table width="626">
      <tr><td valign="top"><p>Navn *:<br><input name="navn" type="text" size="20" maxlength="100" value="">
      <p>Email *:<br><input name="email" type="text" size="20" maxlength="100" value=""></p>
      <p>Adresse:<br> <input name="adresse" type="text" value="" size="20" maxlength="100"></p>
<p>Post nr:&nbsp;&nbsp;By:<br><input name="post" type="text" value="" size="4" maxlength="100">&nbsp;&nbsp;<input name="by" type="text" value="" size="20" maxlength="100"></p>
</td><td valign="top"> <p>Tlf. nr *:<br><input name="tlf" type="text" value="" size="20" maxlength="100"></p>
      <p>Meddelse:<BR><textarea name="meddelse" size="20" rows="5" maxlength="1000"></textarea></p>
<p><input type="Submit" name="submit" value="Submit"></p></td></tr>
      </table>
    </form>
<p><B>Status for mail:</B> <? echo "$error"; ?><? echo "$mailed"; ?></p>



        </td>
    </tr>
<tr valign="top">

    <td width="626" height="43" background="bundmenu.jpg" valign="middle" cellspacing="0" cellpadding="0">

<?
include "bund.php"
?>

</td>

    </tr>
    </table>












        </td>
    </tr>
    </table>
</div>
</td>
</tr>
</table>
</center>
</body>
</html>
Avatar billede ztyxx Nybegynder
30. oktober 2003 - 18:09 #1
du kan lave en validering af felterne inden formen submittes med javascript, så slipper brugeren for at skulle indtaste det hele en gang til
Avatar billede overgreat Forsker
30. oktober 2003 - 18:11 #2
hvordan laver jeg denne validering?
Avatar billede ztyxx Nybegynder
30. oktober 2003 - 18:16 #3
i korte træk:

<script language="javascript">

function valider() {
    if (!frm.flt.value)
    alert('du glemte noget')
    return false
    }

</script>

<form method=post name=frm onsubmit="valider()">
<input type="text" name="flt">
<input type="submit" value=send>
</form>
Avatar billede overgreat Forsker
30. oktober 2003 - 18:18 #4
ok jeg prøver at lege lidt med det!
Avatar billede overgreat Forsker
30. oktober 2003 - 19:01 #5
Hej

Jeg har prøvet at lege med det, men kan ikke se, hvordan jeg skal få det sat sammen. Mit problem er at se, hvordan jeg sammenkoger min php-kode, med Javascript valideringen....
Avatar billede overgreat Forsker
30. oktober 2003 - 20:36 #6
Er det virkelig sådan at man er nødt til at bruge javascript for at kunne sørge for at teksten bliver der ved fejl meddelse? Kan PHP ikke selv klare det?

I modsat fald har jeg ingen clue til hvordan jeg skal få det andet kørt ind????

Er der nogen der kan hjælpe?

På forhånd tak
Avatar billede ztyxx Nybegynder
30. oktober 2003 - 21:10 #7
du kan godt gøre det udelukkende i php, med sessions, men javascript er nu ligeså smart, hvilke felter skal du have tjekket igennem inden afsendelse?
Avatar billede overgreat Forsker
30. oktober 2003 - 22:19 #8
Hej

Navn, email og tlf er de tre der skal indtastes. Email-inputtet skal være en emailadresse.

På forhånd mange tak fordi du gider kigge på det!
Avatar billede ztyxx Nybegynder
31. oktober 2003 - 20:44 #9
<script language="javascript">


        function valider(form) {
           
            if (!form.navn.value) {
                alert('Du glemte at udfylde Navn')
                form.navn.focus()
                return false
                }
                if (!form.email.value) {
                alert('Du glemte at udfylde Email')
                form.email.focus()
                return false
                }
                if (!form.tlf.value) {
                alert('Du glemte at udfylde Tlf')
                form.tlf.focus()
                return false
                }
           
            return true
        }

</script>
Avatar billede ztyxx Nybegynder
31. oktober 2003 - 20:44 #10
og i dit <form> skal du have dette med
onsubmit="return valider(this)"
Avatar billede overgreat Forsker
12. november 2003 - 15:49 #11
Hej ztyxx

Jeg har desværre været bortrejst et stykke tid derfor dette sene svar.

Tak for hjælpen.

Sender du et svar, så får du pointene!

mvh

Henrik
Avatar billede overgreat Forsker
12. juli 2004 - 10:16 #12
jeg lukker spørgsmålet
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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