Avatar billede Mik2000 Professor
20. maj 2006 - 19:20 Der er 9 kommentarer og
1 løsning

Funktion - tjek array

Hej

Jeg har et array i php med nogle navne liggende.

Jeg vil høre hvordan jeg via javascript laver en function der tjekker om det navn man skriver i tekstfeltet er lig med en af navnene i arrayet.

Så der er 2 spørgsmål (svar gerne bare på det ene hvis du kan det)
1: Hvordan gemmer/konventere man et php array som et javascript array?
2: Hvordan gennemløbes arrayet i javascript og tjekkes op mod et tekstfelt (se mere nedenunder)?

Ved godt det grundlæggende java og kan sagens php.

Så jeg ved at der på feltet skal være en onchange="compare();"

Og ved jeg skal have en funktion i head a la:
<script language="javascript">

function compare() {
feltnavn = document.form1.navn.value;

ARRAY FRA PHP SKAL TIL JAVASCRIPOT ELLER HVORDAN MAN NU GØR DETTE I PRAKSIS
HER SKAL VÆRE NOGET (while eller lign i javascript) DER GENNEMLØBER MIT ARRAY OG TJEKKER OM DET ER ENS MED feltnavn. HVIS DET ER ENS SKAL DER VÆRE EN ALERT("FEJL"); HVIS IKKE DET ER ENS SKAL DER IKKE SKE NOGET.

}

</script>


Håber en af jer hajer kan hjælpe.

På forhånd tak :)
Avatar billede arriva Nybegynder
20. maj 2006 - 22:27 #1
hvad med?

var navne = new Array("Anders","Jens");
var i=null;
for(i=0;navne.lenght;i++)
{
  if(navne[i]==feltnavn) {
    alert('tekst!');
    break;
  }
}
Avatar billede arriva Nybegynder
20. maj 2006 - 22:31 #2
Mht. til at få det fra PHP skriver du vel bare din php så den renderer dit javascript med de rette navne i arrayet.. hvis det er mange navne det drejer sig om kunne du også overveje ajax metoden og lave en php-side som dit javascript kan forespørge hver gang.
Avatar billede Mik2000 Professor
20. maj 2006 - 23:09 #3
Hej

Tak for svaret :)

Lidt i tvivl om:
skriver du vel bare din php så den renderer dit javascript med de rette navne i arrayet
eller
overveje ajax metoden og lave en php-side som dit javascript kan forespørge

Arrayet bliver opbygget automatisk ud fra en database og kan derfor varierer.

Hvordan får man den så til at læse dem automatisk eller hvordan laver man forespørgslen?

P.s. min. halvdelen af pointene er dine hvis funktionen virker og det hele med sikkerhed hvis du har en ide til dette ;):)

Tak :)
Avatar billede arriva Nybegynder
21. maj 2006 - 01:17 #4
Hvis jeg har forstået rigtigt så skriver du vel bare en løkke i dit array som så skriver navnene ind i javascript funktionen. Nu er PHP ikke min stærke side, men eg.:
while(odbc_fetch_row($rs))
{
  $navn=odbc_result($rs,"Navn");
  echo "navne[$i]=$navn;\n";
  $i+=1;
}
Men hvis du har rigtig mange navne er det nok ikke en god idé - hvor mange muligheder drejer det sig om?
Avatar billede Mik2000 Professor
21. maj 2006 - 02:10 #5
Det er nok forskelligt men typisk mellem 25 og 150 navne.
Avatar billede arriva Nybegynder
21. maj 2006 - 02:20 #6
Ok, det var en del.. hvad med at overveje en ajax indgang til problemstillinger, prøv evt. at se: http://www.w3schools.com/ajax/ajax_example.asp
Avatar billede olebole Juniormester
21. maj 2006 - 03:09 #7
<ole>

25-150 er ingenting - og gør man det rigtigt, er det rasende hurtigt. Det betyder, man bør bruge et objekt og ikke et array:

$a = array();
while ($row=mysql_fetch_assoc($res)) {
    $a[] = "\"".$row["navn"]."\":1"
}
print "var oHash = {".implode(",", $a)."};\r\n";

- det skulle gerne give et objekt à la:
    var oHash = {"Arne":1,"Anne":1,"Bent":1};

Så kan du spørge med:
    if (oHash[feltnavn]) {
        // navnet 'feltnavn' findes i objektet
    }

Det giver en langt hurtigere søgning end med et array ... og AJAX er nok lidt overkill her.
Source-koden til et godt AJAX-objekt fylder en del mere end den objekt-kode, jeg viste med 150 elementer ... og glem (også) i forbindelse med en god AJAX-løsning helt w3schools.com!
Altså alt i alt en langt hurtigere og bedre performende løsning at undgå AJAX her  ;o)

/mvh
</bole>
Avatar billede Mik2000 Professor
24. maj 2006 - 01:02 #8
Hejsa

Tak for svarene...... har ikke glemt denne..... den er bare ikke testet endnu :)

Mvh
Kim
Avatar billede Mik2000 Professor
22. juni 2006 - 23:43 #9
Hmm lykkedes ikke rigtigt....... fandt en anden måde.

Ellers tak for hjælpen :)
Avatar billede Mik2000 Professor
22. juni 2006 - 23:43 #10
Lukker
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