Avatar billede CrazyDog Nybegynder
24. september 2009 - 14:44 Der er 20 kommentarer og
1 løsning

Minimum antal tegn i textarea!!

Som overskriften siger mangler jeg et textarea som laver et pop-up vindue med tekst hvis der ikke er mere en eksempelvis 200 tegn i boksen. Samtidig skal der over boksen være et felt som tæller det antal tegn der er i boksen. Teksten skal ikke slettes men skal heller ikke kunne sendes hvis der ikke er nok tegn...

Nogen ideér??
Hele filen er postet nedenunder: (BEMÆRK at filen ikke er færdig)
Den omtalte boks er markeret med fed

<?php
if(isset($_POST['Submit'])){
$name = $_POST['name'];
$alder = $_POST['alder'];
$site = $_POST['site'];
$aboutyou = $_POST['aboutyou'];

if (getenv(HTTP_X_FORWARDED_FOR)) {
$ip = getenv('HTTP_X_FORWARD_FOR');
$host = gethostbyaddr($ip);
} else {
$ip = getenv('REMOTE_ADDR');
$host = gethostbyaddr($ip);
}

$to = 'admin@-.dk';
$subject = 'Ny administrator';
$message = "\r\nNavn: $name\r\nAlder: $alder\r\n$name ønsker at administrere $site\r\nOm mig: $aboutyou\r\nIP: $ip";

mail($to, $subject, $message);

$msg = 'Din ansøgning er sendt.<br>Din ansøgning indeholder følgende data:';
$msg .= str_replace("\r\n",'<br>',$message);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ansøgning som administrator hos -</title>
</head>

<body>
<p>
<?php
if(isset($msg)){
echo $msg;
}
?>
</p>
<p align="left">
<form id="form1" name="form1" method="post" action="">
<table width="734" border="0" cellpadding="0" style="border-collapse: collapse">
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">
Dit fornavn og efternavn</th>
    <th width="390" align="left" nowrap="nowrap" scope="col"><input name="name" style="float: left" /></th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">
    <p align="left">
  Din alder</th>
    <th nowrap="nowrap" scope="col" align="left">
    <input type="text" name="alder" /></th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Hvilket hjemmeside kunne du
      tænke dig<br />
      at administrere</th>
    <th nowrap="nowrap" scope="col" align="left"><p>
      <input type="text" name="site" />
      Kun korte nanve som "xx.dk/xx"<br />
      <br />
    </p></th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Text 4</th>
    <th nowrap="nowrap" scope="col" align="left">Svar</th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Text 5</th>
    <th nowrap="nowrap" scope="col" align="left">Svar</th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Text 6</th>
    <th nowrap="nowrap" scope="col" align="left">Svar</th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Text 7</th>
    <th nowrap="nowrap" scope="col" align="left">Svar</th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Text 8</th>
    <th nowrap="nowrap" scope="col" align="left">Svar</th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Text 9</th>
    <th nowrap="nowrap" scope="col" align="left">Svar</th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Text 10</th>
    <th nowrap="nowrap" scope="col" align="left">Svar</th>
    </tr>
  <tr>
    <th nowrap="nowrap" scope="col" width="338" align="left">Lidt om dig selv<br />
      <br />
      <br />
      <br />
      <br /></th>
<th nowrap="nowrap" scope="col" align="left">[b]<textarea name="aboutyou" cols="60" rows="6">MINDST 200 tegn og ingen smiley eller "200 tegn" spam. Skriv evt. hvorfor lige du passer som administrator
-og skriv hellere end gerne ALLE dine spørgsmål ned.

Med venlige hilsner:
CrazyDog
Avatar billede repox Seniormester
24. september 2009 - 14:47 #1
Det har ikke noget med PHP at gøre. Spørg i JavaScript eller DHTML gruppen.
Avatar billede public2 Nybegynder
24. september 2009 - 15:02 #2
Ja det er JavaScript, men nu har du jo spurgt, så her:

<html>
<head>
<title>Tegn maks</title>
<script language="javascript" type="text/javascript">
function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}
</script>
</head>
<body>
<form name="minform">
<textarea name="maxtegntextarea" onKeyDown="limitText(this.form.maxtegntextarea,this.form.nedtaellingaftegn,100);"
onKeyUp="limitText(this.form.maxtegntextarea,this.form.nedtaellingaftegn,100);">
</textarea><br>
<font size="1">(Max tegn: 100)<br>
You have <input readonly type="text" name="nedtaellingaftegn" size="3" value="100"> Tegn tilbage.</font>
</form>
</body>
</html>

Så skal du naturligvis bare rette i antallet af tegn du tillader, samt hvis du skal ændre i form-navn eller andre variabel navne.

God fornøjelse :-)
Avatar billede CrazyDog Nybegynder
24. september 2009 - 15:01 #3
Hvordan sletter / flytter jeg så mit emne??
Avatar billede CrazyDog Nybegynder
24. september 2009 - 15:03 #4
Kan se den ikke har hele filen med... Det må i undskylde...
Avatar billede CrazyDog Nybegynder
24. september 2009 - 15:04 #5
Undskyld, men er ny... Hvordan gir jeg point -.-
Avatar billede public2 Nybegynder
24. september 2009 - 15:09 #6
Er svaret godt nok? Jeg ved godt det ikke er helt det du har efterspugt, men jeg tillod mig lidt kunstnerisk frihed, da jeg personligt hader alert-bokse, som popper op hver eller hver anden gang, derfor kan jeg godt lide den metode, som bare forhindre én i at skrive mere.

Hvis det er godt nok, så vil jeg lægge et svar, og ud fra mit indlæg, som er et svar, kan du give point. Er vist markeret i den grå bar, med grønt.
Avatar billede CrazyDog Nybegynder
24. september 2009 - 15:12 #7
Kan se på koden du har lavet en fejl :S
Jeg søger en kode som kræver et minimum, men den her har et max i stedet for...
Avatar billede public2 Nybegynder
24. september 2009 - 15:58 #8
Undskyld, det var min fejl, havde ikke læst dit spørgsmål ordentligt igennem... Så får du det med en JavaScript alert ja :-)

Prøv dette:

<html>
<head>
<title>Minimum antal tegn</title>

<script language="JavaScript">
function removeSpaces(string){
    return string.replace(/\s*/g,'');
}

function enoughCharacters(Field_ID, Field_Value, Min_Chars){
   
    var str = removeSpaces(Field_Value);
    var minChars = (Min_Chars * 1);
    var charLength = str.length;

    if (charLength < minChars){
      alert("Indtast venligst minimum " + minChars + " tegn");
      return false;
    }
    return;
}
</script>
</head>
<body>
<form name="minform">
<textarea rows="10" cols="30" id="mitID" name="minimumtegn" onchange="java script:enoughCharacters(this.id, this.value, 200)"></textarea>
<br>
<b></b><p><b><input value="Submit" name="B1" type="submit"></p>
</form>
</body>
</html>
Avatar billede CrazyDog Nybegynder
24. september 2009 - 17:05 #9
Virker ikke :(... Måske kan du se min fejl: (Det redigeret står med fed)

<script language="JavaScript">
function removeSpaces(string){
    return string.replace(/\s*/g,'');
}

function enoughCharacters(Field_ID, Field_Value, Min_Chars){
 
    var str = removeSpaces(Field_Value);
    var minChars = (Min_Chars * 200);
    var charLength = str.length;

    if (charLength < minChars){
      alert("Indtast venligst minimum " + 200 + " tegn");
      return false;
    }
    return;
}
</script>


<th nowrap="nowrap" scope="col" align="left"><textarea cols="60" rows="6" id="mitID" name="aboutyou" onchange="java script:enoughCharacters(this.id, this.value, 200)">MINDST 200 tegn og ingen smiley eller "200 tegn" spam
Skriv evt. hvorfor lige du passer som administrator
-og skriv hellere end gerne ALLE dine spørgsmål ned.

Med venlige hilsner:
CrazyDog
Avatar billede CrazyDog Nybegynder
24. september 2009 - 17:05 #10
Ved ikke om det er noget jeg har redigeret eller om det måske er id som jeg ikke har redigeret.
Avatar billede olebole Juniormester
24. september 2009 - 22:31 #11
<ole>

Eksperten kan ikke skrive javascript efterfulgt af et kolon. Så deles udtrykket i java og script:.

Derudover er det en misforståelse at bruge javascript pseudoprotokollen i en event handler, så du bør nøjes med:

onchange="enoughCharacters(this.id, this.value, 200)"

Husk også at language attributten har været deprecated i mange år, så et validt scripttag ser sådan ud:

<script type="text/javascript">


/mvh
</bole>
Avatar billede CrazyDog Nybegynder
24. september 2009 - 23:36 #12
Jeg ved ikke hvad jeg gør galt, men det virker ikke :(...
I kan se det her:
http://craz.dk/stilling-admin.php

Jeg har aktiveret højre klik så i bare kan se kilekoden.

Kan være i kan se hvad jeg gør galt...

-CrazyDog
Avatar billede public2 Nybegynder
25. september 2009 - 00:17 #13
Hej igen,

du skal ikke lave om i javascriptet overhovedet, der hvor den siger "1" og " + minChars + " skal blive stående, ellers virker det ikke.

Jeg har allerede sat den til at tælle til 200 tegn, det gøres nede i selve textarea feltet "enoughCharacters(this.id, this.value, 200)".

Det er dog rigtigt, at Eksperten laver om i noget af javascriptet, så det står "java script" og ikke i ét ord, så for god orden skyld, har jeg lagt selve html filen op, hvor det virker med:

Tegn minimum 200
textarea navn: aboutyou

Hent filen her:
http://www.box.net/shared/hhh4i2qfvm

Mvh
Emil
Avatar billede CrazyDog Nybegynder
25. september 2009 - 13:28 #14
Skriv et svar og du for dine point Public2 ;)
Kan godt se hvad jeg havde lavet galt tilsidst efter at kigge på din xD...
Avatar billede public2 Nybegynder
25. september 2009 - 16:05 #15
Super, dejligt at du har fået det til at virke.

Go' weekend :-)
Avatar billede CrazyDog Nybegynder
25. september 2009 - 18:02 #16
Tak og i lige måde ;)
Avatar billede olebole Juniormester
25. september 2009 - 22:32 #17
public2 >> Med al respekt, så er det noget vrøvl, der ikke skal rettes i scriptet  =)

Det giver absolut ingen mening at skrive at skrive java script:. JavaScript pseudoprotokollen er skabt til at bruge f.eks. i href'en på et link. En event handler kan derimod ikke andet end afvikle JavaScript - og det er en decideret fejl at bruge protokollen.

Desuden har language attriobutten på et scripttag været forældet i 10 år - og er afløst af type attributten.

Naturligvis bør de to fejl rettes. Det undrer mig, du pusher fejlfyldt kode. Specielt når du eksplicit får at vide, den kode du foreslår er fejlbehæftet og invalid. Det er da ikke særlig god stil
Avatar billede public2 Nybegynder
26. september 2009 - 16:20 #18
Det virker, så pfff.

Og jeg overlever at du ikke synes om min stil.
Avatar billede olebole Juniormester
26. september 2009 - 22:02 #19
Det er ikke din stil, jeg taler om ... det er dine JavaScript og HTML fejl  =)
Avatar billede erikjacobsen Ekspert
26. september 2009 - 22:19 #20
Ole: "En event handler kan derimod ikke andet end afvikle JavaScript - og det er en decideret fejl at bruge protokollen." - Det er ikke en fejl, men som du siger tidligere: en misforståelse.

Da der kun kan stå javascript i en eventhandler-streng, bliver det opfattet som javascript, og "java script:" (uden mellemrum) er dermed blot en label, der ikke bliver brugt. Grimt, men bestemt og aldeles lovligt.
Avatar billede olebole Juniormester
26. september 2009 - 23:06 #21
Bevares, den giver jeg mig på, men der er ingen tvivl om, language attributten og den manglende style attribut er en decideret fejl  ;o)
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