|  | 		    
					
        
         
          
         
	
          | |  | Kan man i JavaScript læse data fra en fil? Fra : Bertel Lund Hansen
 | 
 Dato :  12-12-09 12:58
 | 
 |  | 
 
            Hej alle
 Jeg har nogle data som skal bruges af både JavaScript og PHP. Det
 vil være den mest stabile løsnig  at de kun står ét sted. Derfor
 vil jeg gerne kunne inkludere dem i JS eller hente dem på anden
 måde.
 Kan jeg f.eks. oprette et array i JS ved at læse en fil hvor
 nogle navne stå på hver linje?
 Det kunne måske også løses ved noget include, men array-formatet
 er jo ikke ens i PHP og JS.
 -- 
 Bertel
http://bertel.lundhansen.dk/          FIDUSO: http://fiduso.dk/ |  |  | 
  Frank Damgaard (12-12-2009) 
 
	
          | |  | Kommentar Fra : Frank Damgaard
 | 
 Dato :  12-12-09 13:12
 | 
 |  |  |  |  | 
  Stig Johansen (12-12-2009) 
 
	
          | |  | Kommentar Fra : Stig Johansen
 | 
 Dato :  12-12-09 13:24
 | 
 |  | 
 
            Bertel Lund Hansen wrote:
 > Jeg har nogle data som skal bruges af både JavaScript og PHP. Det
 > vil være den mest stabile løsnig  at de kun står ét sted. Derfor
 > vil jeg gerne kunne inkludere dem i JS eller hente dem på anden
 > måde.
 > 
 > Kan jeg f.eks. oprette et array i JS ved at læse en fil hvor
 > nogle navne stå på hver linje?
 Alt kan lade sig gøre i en gasovn ;)
 Men du kommer nok til at uddybe lidt mere hvad du er ude på.
 (Navneliste ?, format ?, præsentation ?)
 Vha Ajax kan du hente 'filer' fra serveren, enten som flade filer, eller ved
 kald til PHP (som inkluderer filen).
 I mit notes bruger jeg Ajax til 'quickview', og almindeligt kald til
 serveren ved 'show note'.
 Hvis du kigger på det her eksempel:
 <http://w-o-p-r.dk/notes/show.base.asp?d=hjemmesideskolen_php&v=Steps> så er det reelt det samme indhold (fra samme URL), der bliver vist ved klik
 på hhv. 'quickview' og 'shownote'.
 Forskellen (som) ikke er tydelig, er, at ved kald via Ajax, tilføjes en
 parameter (q=yes), som gør at det kun er substansen, der sendes.
 Er 'q' ikke sat til yes, hentes den fulde side incl headers og styles.
 Jeg ved ikke om det er noget i den stil du er ude efter, men budskabet er,
 at samme indhold kan serveres på forskellige måder i samme PHP (eller ASP)
 fil.
 -- 
 Med venlig hilsen
 Stig Johansen
            
             |  |  | 
  Bertel Lund Hansen (12-12-2009) 
 
	
          | |  | Kommentar Fra : Bertel Lund Hansen
 | 
 Dato :  12-12-09 16:36
 | 
 |  | 
 
            Stig Johansen skrev:
 > Men du kommer nok til at uddybe lidt mere hvad du er ude på.
 > (Navneliste ?, format ?, præsentation ?)
 Jeg skal lave en side med mailadresser. De skal camoufleres med
 'din' opskrift (du ved: '#@'). Det skal gøres med JS, men siderne
 sættes op med PHP. PHP skal skrive id'erne i HTML-koden, og JS
 skal bruge de samme id'er i koden.
 Jeg har derfor brug for et array i begge sprog, og det skal
 indeholde de samme brugernavne:
 PHP:
 $user=array('arne', 'børge','carl');
 JS:
 var user=['arne', 'børge','carl']
 Jeg vil nødig skrive de samme værdier i to forskellige filer, for
 det giver mulighed for fejl. Jeg kan f.eks. lave en tekstfil:
      arne
      børge
      carl
 Hvordan kan jeg evt. læse den i JS?
 Jeg er ikke interesseret i at kaste et monsterværk på hjemmesiden
 for at løse problemet.
 -- 
 Bertel
http://bertel.lundhansen.dk/          FIDUSO: http://fiduso.dk/ |  |  | 
   Birger Sørensen (12-12-2009) 
 
	
          | |  | Kommentar Fra : Birger Sørensen
 | 
 Dato :  12-12-09 16:45
 | 
 |  | 
 
            Bertel Lund Hansen har bragt dette til verden:
 > Stig Johansen skrev:
 >
 >> Men du kommer nok til at uddybe lidt mere hvad du er ude på.
 >> (Navneliste ?, format ?, præsentation ?)
 >
 > Jeg skal lave en side med mailadresser. De skal camoufleres med
 > 'din' opskrift (du ved: '#@'). Det skal gøres med JS, men siderne
 > sættes op med PHP. PHP skal skrive id'erne i HTML-koden, og JS
 > skal bruge de samme id'er i koden.
 >
 > Jeg har derfor brug for et array i begge sprog, og det skal
 > indeholde de samme brugernavne:
 >
 > PHP:
 > $user=array('arne', 'børge','carl');
 >
 > JS:
 > var user=['arne', 'børge','carl']
 >
 > Jeg vil nødig skrive de samme værdier i to forskellige filer, for
 > det giver mulighed for fejl. Jeg kan f.eks. lave en tekstfil:
 >
 >      arne
 >      børge
 >      carl
 >
 > Hvordan kan jeg evt. læse den i JS?
 >
 > Jeg er ikke interesseret i at kaste et monsterværk på hjemmesiden
 > for at løse problemet.
 Man kan ikke læse filer med js.
 Js er på clientside - din fil er serverside.
 Den eneste mulighed du har, er enten at pakke det ind med php i 
 indexfilen, eller at hente den med ajax.
 Birger
 -- 
http://varmeretter.dk  - billig, sund og hurtig mad
http://bbsorensen.dk |  |  | 
    Bertel Lund Hansen (12-12-2009) 
 
	
          | |  | Kommentar Fra : Bertel Lund Hansen
 | 
 Dato :  12-12-09 16:48
 | 
 |  | 
 
            Birger Sørensen skrev:
 > Man kan ikke læse filer med js.
 > Js er på clientside - din fil er serverside.
 Det er da også rigtigt.
 > Den eneste mulighed du har, er enten at pakke det ind med php i 
 > indexfilen, eller at hente den med ajax.
 Okay. Så går jeg en lidt anden vej: Jeg lader PHP pille navnene
 ud af JS-filen.
 Tak for kommentarerne.
 -- 
 Bertel
http://bertel.lundhansen.dk/          FIDUSO: http://fiduso.dk/ |  |  | 
   Frank Damgaard (12-12-2009) 
 
	
          | |  | Kommentar Fra : Frank Damgaard
 | 
 Dato :  12-12-09 18:50
 | 
 |  | Bertel Lund Hansen wrote:
 > Stig Johansen skrev:
 >
 >> Men du kommer nok til at uddybe lidt mere hvad du er ude på.
 >> (Navneliste ?, format ?, præsentation ?)
 >
 > Jeg skal lave en side med mailadresser. De skal camoufleres med
 > 'din' opskrift (du ved: '#@'). Det skal gøres med JS, men siderne
 > sættes op med PHP. PHP skal skrive id'erne i HTML-koden, og JS
 > skal bruge de samme id'er i koden.
 >
 > Jeg har derfor brug for et array i begge sprog, og det skal
 > indeholde de samme brugernavne:
 
 hvorfor ikke bare lade php spytte koden ud med færdig html og javascript?
 der er vel ingen grund til at hente alle mailadresser fra en fil?
 
 jeg bruger i øvrigt nogen gange at URL encode emailadresse, og så bruge
 javascript til at trylle det frem igen.
 
 mailadresse bliver så f.eks:
 urlhex="%33%27%34%3B%3E%0A%3B%30%22%26%15%38%3C%39%25%30%3B%21%7B%31%3E"
 
 og man kan sikkert finde på flere sjove "obscurity" løsninger ;)
 
 
 |  |  | 
    Bertel Lund Hansen (12-12-2009) 
 
	
          | |  | Kommentar Fra : Bertel Lund Hansen
 | 
 Dato :  12-12-09 21:18
 | 
 |  | 
 
            Frank Damgaard skrev:
 > hvorfor ikke bare lade php spytte koden ud med færdig html og javascript?
 Fordi JavaScriptet ligger i en separat fil. Det bruges tilo
 beskyttelse af mailadresser, og metoden er så smart at det er ret
 svært at finde ud af hvad adresserne er - samtidig med at en
 bruger slet ikke opdager at de ikke er lavet helt almindeligt.
 Ved at adskille HTML og JavaScript opnår man et ekstra lag
 beskyttelse.
 Derudover ville det ikke blive lettere ved at laves i én fil. Om
 jeg i PHP skal opbygge en linje der opretter et array i JS, eller
 om jeg skal trække brugernavnene ud af en JS-fil med en
 array-linje, det kommer ud på ét.
 > der er vel ingen grund til at hente alle mailadresser fra en fil?
 Elementer der skal bruges mange steder, skriver jeg helst kun ét
 sted, og da der vil komme nye brugernavne til, ville det have
 været praktisk kun at skulle redigere en tekstfil med data.
 Nu skal jeg så redigere JS-filen i stedet. Det er okay.
 > og man kan sikkert finde på flere sjove "obscurity" løsninger ;)
 Du kan jo kikke på min HTML-løsning. Metoden har Stig Johansen
 hittet på.
 <li><b><a id='bertel.lund.hansen' href='#@'>Bertel Lund
 Hansen</a></b></li><li>Tlf.: 61 70 32 41 </li>
 Når man kikker på siden, står der et normalt mailtolink med min
 rigtige adresse lige klar til brug ved et klik.
 I får ingen link, for det er ikke en offentlig side.
 -- 
 Bertel
http://bertel.lundhansen.dk/          FIDUSO: http://fiduso.dk/ |  |  | 
     Stig Johansen (13-12-2009) 
 
	
          | |  | Kommentar Fra : Stig Johansen
 | 
 Dato :  13-12-09 02:01
 | 
 |  | Bertel Lund Hansen wrote:
 
 > Derudover ville det ikke blive lettere ved at laves i én fil. Om
 > jeg i PHP skal opbygge en linje der opretter et array i JS, eller
 > om jeg skal trække brugernavnene ud af en JS-fil med en
 > array-linje, det kommer ud på ét.
 
 Det behøver vel ikke nødvendigvis at være defineret som et array ?
 
 Hvis du i toppen af JS filen skriver f.eks:
 var mailadresser='arne/domænd.tld,børge/andet.tld,carl/tredje.tld' ;
 
 Så kan du bruge strengen i både JS og PHP med en split.
 Dvs. f.eks i JS:
 
 var mailadresserArray = mailadresser.split(',') ;
 
 Så har du et array - se senere..
 
 > <li><b><a id='bertel.lund.hansen' href='#@'>Bertel Lund
 > Hansen</a></b></li><li>Tlf.: 61 70 32 41 </li>
 
 Hvis du så navngiver dine ID'ere med f.eks. M0,M1,M2..
 så kan du loope over mailadresserne med noget a la:
 for (var i=0; i< mailadresserArray.length; i++ ){
 var element=document.getElementById('M'+i);
 substitutehref(element,mailadresserArray[i]);
 }
 
 function substitutehref(element,mailadresse) {
 var address = mailadresse.split('/')[0];
 var domain = mailadresse.split('/')[1];
 var msub = element.href.substring(mail.href.indexOf('#')+1) ;
 element.href='mailto:'+address + msub + domain ;
 }
 
 --
 Med venlig hilsen
 Stig Johansen
 
 
 |  |  | 
      Bertel Lund Hansen (13-12-2009) 
 
	
          | |  | Kommentar Fra : Bertel Lund Hansen
 | 
 Dato :  13-12-09 15:46
 | 
 |  | 
 
            Stig Johansen skrev:
 > Det behøver vel ikke nødvendigvis at være defineret som et array ?
 Næ, der er forskellige muligheder.
 > Hvis du i toppen af JS filen skriver f.eks:
 > var mailadresser='arne/domænd.tld,børge/andet.tld,carl/tredje.tld' ;
 Ja, men lige nu har jeg:
         var users=['arne','benny','carl']
 og efter en PHP-split skal jeg bare have hvert andet element.
 > Hvis du så navngiver dine ID'ere med f.eks. M0,M1,M2..
 Jeg bruger brugernavnet til id. Det er logisk og overskueligt. Og
 så looper jeg internt i JS-funktionen.
 -- 
 Bertel
http://bertel.lundhansen.dk/          FIDUSO: http://fiduso.dk/ |  |  | 
 |  |