Avatar billede kirsten Nybegynder
04. oktober 2008 - 21:55 Der er 7 kommentarer og
1 løsning

Gennemsøge array

Hej,
har et javascript der søger et array igennem ved indtastning i et text felt og indsætter resultatet i et andet text felt.
Javascript funktion kaldes med en onkeyup og det virker også fint.

Nu skal jeg så bruge en funktion som gør præcist det samme,
men uden at man fysisk taster noget i det første text felt,
men værdien i text feltet sættes ved value=foo".

Håber det giver mening og der er en der kan hjælpe mig på vej :)
Avatar billede w13 Novice
04. oktober 2008 - 22:19 #1
Så må vi nok se den kode, du har. =)

Og er ikke helt med på, hvornår der skal søges + indsættes?
Avatar billede kirsten Nybegynder
05. oktober 2008 - 08:31 #2
Her er koden iblandet lidt smarty kode.
Det skal bruges ved ved en profil opdateringsside.
Dvs den skal finde bynavn i arrayet når man profilen bliver hentet.

{literal}
<script type='text/javascript' language='javascript'>
var zipcodesArray = new Array();
{/literal}
{foreach from=$zipcodes item=value}   
    zipcodesArray[{$value.zip}] = "{$value.city}"; 
{/foreach}
{literal}

function lookUp (zipcode) {

    if (zipcodesArray[zipcode.value])
        document.f.city.value = zipcodesArray[zipcode.value];
    else {
        alert( "Ukendt postnummer : "+zipcode.value+", prøv igen!" );
        zipcode.focus();
    }
};

</script>
{/literal}

<input type="text" name="zip" id="zip" {literal}onkeyup="if(this.value.length == 4){lookUp(this)};"{/literal} />

<input name='city' id="city" type='text' value="" disabled="disabled" />
Avatar billede w13 Novice
05. oktober 2008 - 12:12 #3
Så kan du f.eks. køre det med:

{literal}
<script type='text/javascript' language='javascript'>
var zipcodesArray = new Array();
{/literal}
{foreach from=$zipcodes item=value}   
    zipcodesArray[{$value.zip}] = "{$value.city}"; 
{/foreach}
{literal}

function lookUp (zipcode) {

    if (zipcodesArray[zipcode.value])
        document.f.city.value = zipcodesArray[zipcode.value];
    else {
        alert( "Ukendt postnummer : "+zipcode.value+", prøv igen!" );
        zipcode.focus();
    }
};

</script>
{/literal}

<input type="text" name="zip" id="zip" value="ORD DER SKAL BRUGES" />

<input name='city' id="city" type='text' value="" disabled="disabled" />

<script type="text/javascript">
lookUp(document.getElementById("zip"));
</script>

Burde gøre tricket. Hvis man ikke skal kunne se feltet zip, så sætter du bare style="display:none" på det.
Avatar billede roenving Novice
06. oktober 2008 - 16:27 #4
-- men for båndbredden ser det ud til at være en dyr løsning, hvis du bare skal bevæge dig over en betydelig del af Danmark ...
Avatar billede kirsten Nybegynder
06. oktober 2008 - 19:13 #5
Først og fremmest så tak for hjælpen :)
Mht båndbredden, ja men på den anden side så er det de færreste som sidder på gamle modem og isdn forbindelser mere...
Det bliver vel altid et kompromis ?
Avatar billede kirsten Nybegynder
06. oktober 2008 - 19:14 #6
w13 -> smider du ikke et svar?
Avatar billede w13 Novice
06. oktober 2008 - 21:12 #7
;)
Avatar billede w13 Novice
06. oktober 2008 - 21:43 #8
Tak for points!
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