Avatar billede stefmeister Nybegynder
01. december 2005 - 14:17 Der er 15 kommentarer og
1 løsning

postnummer og by

Hej

Jeg er ved at lave en bestillingsformular, hvori brugeren skal indtaste navn, adresse, postnummer etc. Jeg har så en database med alle postnumre og byer. Kan man lave det sårn, at hvis brugeren f.eks. skriver 3650, så skriver den selv ølstykke ved siden af input feltet? Altså uden at reloade siden? Og hvordan kombinere jeg det med min database? Jeg brugere php.
Avatar billede roenving Novice
01. december 2005 - 14:43 #1
Hvis du ikke skal reloade er det irrelevant hvad du bruger på serveren ...

-- olebole lavede engang en simpel ting, som han ville vise sin optimerede udgave af en javascript-database med ...

Databasen så sådan ud:

var postnumre = {p386:'Nolsoy',p3650:'Ølstykke'}

-- som blev skrevet i en selvstændig fil, og så var scriptet dertil:

<form>
<input type="text" name="postNr" onkeyup="findPost(this)">&nbsp;<input type="text" name="postBy" readonly="readOnly">
</form>

Scriptet kan f.eks. se sådan ud:

<script type="text/javascript">
function findPost(elm){
  if(elm.value.match(/^\d{3,4}$/) && postnumre['p' + elm.value])
    elm.form.postBy.value = postnumre['p' + elm.value];
}
</script>
Avatar billede roenving Novice
01. december 2005 - 14:45 #2
-- og med en relevant fejl-tekst:

<script type="text/javascript">
function findPost(elm){
  elm.form.postBy.value = (elm.value.match(/^\d{3,4}$/) && postnumre['p' + elm.value]) ? postnumre['p' + elm.value] : "Ingen by fundet";
}
</script>
Avatar billede caspers Nybegynder
01. december 2005 - 14:49 #3
I en drop down menu, med post nummrene først, kommer bynavnent senest når du har skrevet alle fire cifre. Find postnumrne på http://postdanmark.dk/index.jsp
Avatar billede stefmeister Nybegynder
01. december 2005 - 21:20 #4
roenving -> hvad skal den anden fil hedde, og hvad skal der stå i den? Jeg er ikke så skarp i JavaScript.
Avatar billede stefmeister Nybegynder
01. december 2005 - 21:22 #5
caspers -> ??? Jeg har en database med alle postnumre og byer. Jeg vil have det sårn at der er et input felt, hvor man maks kan skrive 4 tegn, og når man så har skrevet de fire tegn, så skriver den automatisk byens navn som tekst ved siden af input boksen.
Avatar billede stefmeister Nybegynder
01. december 2005 - 21:29 #6
roenving -> aaaah, nu er jeg med hvordan du kæder dem sammen, så laver jeg bare en kæmpe liste med alle postnumre og byer? Men som du også nævner i en anden fil, men hvordan får jeg den til at vide hvilken fil helt præcist?


1. fil:

<form>
<input type="text" name="postNr" onkeyup="findPost(this)">&nbsp;<input type="text" name="postBy" readonly="readOnly">
</form>

<script type="text/javascript">
function findPost(elm){
  if(elm.value.match(/^\d{3,4}$/) && postnumre['p' + elm.value])
    elm.form.postBy.value = postnumre['p' + elm.value];
}
</script>


2. fil:

????
Avatar billede stefmeister Nybegynder
01. december 2005 - 21:30 #7
roenving -> den sidste, den hvor der og er hvis ingen by er fundet - der er en error et sted :/
Avatar billede roenving Novice
03. december 2005 - 02:54 #8
Hvis du udskriver din postnummerliste til en fil, der f.eks. hedder postnumre.php kobler du den ind i din side med f.eks.

<script type="text/javascript" src="postnumre.php"></script>

-- bemærk tricket med at tilføje p'et, for en nøgle i javascript kan ikke starte med et tal !-)
Avatar billede stefmeister Nybegynder
04. december 2005 - 19:46 #9
aaaah... nu har jeg fået det til at virke.. tak for hjælpen ;)
Avatar billede stefmeister Nybegynder
04. december 2005 - 19:46 #10
hvis du smider et svar?
Avatar billede stefmeister Nybegynder
04. december 2005 - 20:23 #11
skal der KUN stå

<form>
<input type="text" name="postNr" onkeyup="findPost(this)">&nbsp;<input type="text" name="postBy" readonly="readOnly">
</form>
<script type="text/javascript" src="postnumre.php"></script>


og så i postnumre.php står der

<script type="text/javascript">
var postnumre = {p386:'Nolsoy',p3650:'Ølstykke'}
function findPost(elm){
  if(elm.value.match(/^\d{3,4}$/) && postnumre['p' + elm.value])
    elm.form.postBy.value = postnumre['p' + elm.value];
}
</script>


eller hvordan?
Avatar billede roenving Novice
06. december 2005 - 12:36 #12
Nej, du må ikke lægge html-kode i et javascript-dokument, så væk med <script></script> !-)

Velbekomme '-)
Avatar billede stefmeister Nybegynder
06. december 2005 - 18:19 #13
så bare hele scriptet... men uden <script> tingene? men ellers resten?
Avatar billede roenving Novice
06. december 2005 - 18:21 #14
Præcis, ja !-)

-- og tak for point ;~}
Avatar billede stefmeister Nybegynder
06. december 2005 - 18:27 #15
takker.. nu virker det perfekt :D
Avatar billede roenving Novice
07. december 2005 - 09:14 #16
-- og jeg takker for point ;~}
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