20. maj 2006 - 19:20Der 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.
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.
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 ;):)
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?
- 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)
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.