Avatar billede jmjveb Nybegynder
11. august 2004 - 16:01 Der er 12 kommentarer og
1 løsning

PHP i Form der gør at enkelte tekst felter SKAL udfyldes

Jeg har en form med tekst felter og check boxe. Nogle af disse felter SKAL udfyldes for at sende formen med data til mig. Men ikke nødvendigvis dem alle.
Men det kan jeg ikke få til at virke i PHP script. Kender nogen den kode der skal stå for at få det til at virke ?

Jeg kan godt få tilsendt mail med data - og få den til at vise en ( "tak for meddelsen.html" ), men funktionen required fields kan jeg ikke få til at virke i dreamweaver.
Avatar billede fennec Nybegynder
11. august 2004 - 16:05 #1
Det kan gøres i javascript. Sæt en onsubmit="myCheck()" på formen.

function myCheck()
{
  passedCheck = true;
  if (document.dinForm.DitFelt1.value.length < 1)
    passedCheck = false;
  if (document.dinForm.DitFelt2.value.length < 1)
    passedCheck = false;
  return passedCheck;
}
Avatar billede jmjveb Nybegynder
11. august 2004 - 16:18 #2
hej
kan man skrive java i et php dokument - det ser nu således ud :
<?php

$MailToAddress = "min_email@min_email.dk";
$redirectURL = "manko_modt.html";
$requiredTextField = "navn, adresse, post nr, by, land, email";

hvor required fields er de felter jeg vil have at folk skal udfylde.
kan du ud af dette omformulere din "function myCheck()"
Avatar billede jmjveb Nybegynder
11. august 2004 - 16:20 #3
skal jeg bare skrive:

function myCheck()
{
  passedCheck = true;
if (document.dinForm.navn.value.length < 1)
    passedCheck = false;

skal jeg ændre "dinForm" - hvilket navn skal der stå ?
Avatar billede fennec Nybegynder
11. august 2004 - 16:26 #4
Der findes to former for sprog når man snakker web. Serverside (PHP, ASP) og klientside (JavaScript)

JavaScript afvikles på klienten (browseren). Det er også her HTML fortokles.

Ved at afvikle JavaScript kan du lave en hel del tjek uden at submitte siden. Det du søger er noget i denne stil...


<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function myCheck()
{
  passedCheck = true;
  if (document.DinForm.MyTekst1.value.length < 1)
    passedCheck = false;
  if (document.DinForm.MyTekst2.value.length < 1)
    passedCheck = false;
  if (document.DinForm.MyTekst3.value.length < 1)
    passedCheck = false;
  return passedCheck;
}
//-->
</SCRIPT>
<form name="DinForm" onSubmit="myCheck()">
<input type="tekst" name="MyTekst1"><br>
<input type="tekst" name="MyTekst2"><br>
<input type="tekst" name="MyTekst3"><br>
<input type="Submit" value="send">
</form>
Avatar billede jmjveb Nybegynder
11. august 2004 - 16:27 #5
eller skal jeg skrive det på siden hvor formen er ?
og evt. hvor på siden - i head eller body ?
Avatar billede jmjveb Nybegynder
11. august 2004 - 16:31 #6
php kan jeg som sagt godt få til at virke, således at jeg modtager mail - og får vist "tak for meddelses siden" - men når jeg begynder at skrive java - forsvinder visningen af siden i mit program dreamweaver - jeg kan ikke se den simpelthen.
Avatar billede fennec Nybegynder
11. august 2004 - 21:02 #7
Du skal have det på den side hvor formen er. Her er en fuld kode som virker. Jeg havde også glemt return i onSubmit actionen. Hvis den returnere false bliver submitten afbrudt.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Form Check Test</title>
</head>

<body>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function myCheck()
{
  passedCheck = true;
  if (document.DinForm.MyTekst1.value.length < 1)
    passedCheck = false;
  if (document.DinForm.MyTekst2.value.length < 1)
    passedCheck = false;
  if (document.DinForm.MyTekst3.value.length < 1)
    passedCheck = false;
  return passedCheck;
}
//-->
</SCRIPT>
<form name="DinForm" onSubmit="return myCheck()" method="post" action="DinFil.php">
<input type="tekst" name="MyTekst1"><br>
<input type="tekst" name="MyTekst2"><br>
<input type="tekst" name="MyTekst3"><br>
<input type="Submit" value="send">
</form>

</body>
</html>
Avatar billede jmjveb Nybegynder
11. august 2004 - 21:37 #8
hold da op - det virker !!!!!!

Bare godt gået !!

Jeg takker så utroligt mange gange - vil du have de 60 point ???
Avatar billede fennec Nybegynder
12. august 2004 - 07:57 #9
svar.
.o) <-- One Eyed Jack
Avatar billede fennec Nybegynder
12. august 2004 - 08:03 #10
Du kan også udvide checket så brugeren får besked, og curseren bliver sat i feltet.

function myCheck()
{
  if (document.DinForm.MyTekst1.value.length < 1)
  {
    document.DinForm.MyTekst1.focus()
    alert("Du mangler at udfylde felt 1")
    return false;
  }
  else
  {
    if (document.DinForm.MyTekst2.value.length < 1)
    {
      document.DinForm.MyTekst2.focus()
      alert("Du mangler at udfylde felt 2")
      return false;
    }
    else
    {
      if (document.DinForm.MyTekst3.value.length < 1)
      {
        document.DinForm.MyTekst3.focus()
        alert("Du mangler at udfylde felt 3")
        return false;
      }
      else
      {
        return true;
      }
    }
  }
}
Avatar billede Slettet bruger
12. august 2004 - 08:03 #11
er fennec perfektionist? :]
Avatar billede jmjveb Nybegynder
12. august 2004 - 12:45 #12
Flere rigtig gode ideer
Avatar billede fennec Nybegynder
12. august 2004 - 16:07 #13
Lidt perfektionist er man vel altid :o)

Nu havde jeg scriptet til at ligge, også kunne jeg lige så godt smide det ud til afbenyttelse. Det hjælper jo ikke andre end mig, så længe det ikke kan ses her på E.

Hvis scriptet skulle være helt godt, skulle det være mere dynamisk. Man kunne smide navne på de felter der skal tjekkes i et array. Det ville gøre det nemmere at "overføre" scriptet til andre sider, hvor der skal laves det samme tjek. Sådan et script har jeg dog ikke, men der er sikkert andre der har. Ellers kan det da laves....
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