/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Array med mappeindhold
Fra : Kurt G


Dato : 02-02-11 09:26

Jeg er ny udi javascript, derfor:
Til visning af billeder har jeg brug for at lave et array (eller noget
lignende), som indeholder navnene på alle filer med en bestemt endelse i en
given folder på serveren!

Jeg har søgt på nettet, men synes ikke, a jeg finder noget javascript, som
kan lave det!

Er det ikke muligt i JS?

Mvh Kurt



 
 
Martin Larsen (02-02-2011)
Kommentar
Fra : Martin Larsen


Dato : 02-02-11 10:44

Kurt G wrote:

> Til visning af billeder har jeg brug for at lave et array (eller noget
> lignende), som indeholder navnene på alle filer med en bestemt endelse i en
> given folder på serveren!

<klip>

> Er det ikke muligt i JS?

Ja og nej. Din browser har ingen mulighed for at vide hvad der er på
serveren, så der skal noget serverkode i den anden ende. Denne kode skal
generere et javascript-array med det rigtige indhold som du så kan bruge
i JS i browseren.

Jeg har netop haft brug for dette i PHP.

Hvad har du af muligheder på serveren?

Martin

Kurt G (02-02-2011)
Kommentar
Fra : Kurt G


Dato : 02-02-11 22:38

"Martin Larsen" <martin+spamfree+larsen@bigfoot.com> skrev i en meddelelse
news:4d492765$0$23764$14726298@news.sunsite.dk...
KLIPPET
> Ja og nej. Din browser har ingen mulighed for at vide hvad der er på
> serveren, så der skal noget serverkode i den anden ende. Denne kode skal
> generere et javascript-array med det rigtige indhold som du så kan bruge i
> JS i browseren.
>
> Jeg har netop haft brug for dette i PHP.
>
> Hvad har du af muligheder på serveren?
KLIPPET
Jeg ved ikke hvilke muligheder, du tænker på!
Jeg bruger i forvejen PHP, hvis det er i den retning, du tænker og jeg har i
forvejen lavet en rutine, der læser alle billedfiler ind i et php-array!
Mvh Kurt



Martin Larsen (02-02-2011)
Kommentar
Fra : Martin Larsen


Dato : 02-02-11 22:40

Kurt G wrote:
> Jeg ved ikke hvilke muligheder, du tænker på!
> Jeg bruger i forvejen PHP, hvis det er i den retning, du tænker og jeg har i
> forvejen lavet en rutine, der læser alle billedfiler ind i et php-array!

Ja, det er fx PHP jeg tænker på.

Ligger alle filerne i samme mappe, eller skal der søges videre ned i
undermapper?

Kurt G (02-02-2011)
Kommentar
Fra : Kurt G


Dato : 02-02-11 22:42

"Martin Larsen" <martin+spamfree+larsen@bigfoot.com> skrev i en meddelelse
news:4d49cf4e$0$23755$14726298@news.sunsite.dk...
> Kurt G wrote:
>> Jeg ved ikke hvilke muligheder, du tænker på!
>> Jeg bruger i forvejen PHP, hvis det er i den retning, du tænker og jeg
>> har i
>> forvejen lavet en rutine, der læser alle billedfiler ind i et php-array!
>
> Ja, det er fx PHP jeg tænker på.
>
> Ligger alle filerne i samme mappe, eller skal der søges videre ned i
> undermapper?

De ligger i samme mappe!

Mvh Kurt



Martin Larsen (02-02-2011)
Kommentar
Fra : Martin Larsen


Dato : 02-02-11 22:51

Kurt G wrote:

> De ligger i samme mappe!

Birger har allerede givet en fin løsning med glob(). Pånær nogle småting
(mest rent stilmæssigt) ville jeg gøre det på samme måde. Derfor vil jeg
hellere vise dig en anden måde at gøre det på som har den fordel at den
kan søge ned i undermapper. Det har du godt nok ikke brug for, men man
ved jo aldrig senere

Det bliver dog først i morgen

Og forresten, Birger har lavet en lille slåfejl:

foreach ( $files as $fil) {

Der skal stå:

foreach ( $filer as $fil) {

Hilsen
Maritn

Kurt G (02-02-2011)
Kommentar
Fra : Kurt G


Dato : 02-02-11 22:57

"Martin Larsen" <martin+spamfree+larsen@bigfoot.com> skrev i en meddelelse
news:4d49d1d7$0$23755$14726298@news.sunsite.dk...
> Kurt G wrote:
>
>> De ligger i samme mappe!
>
> Birger har allerede givet en fin løsning med glob(). Pånær nogle småting
> (mest rent stilmæssigt) ville jeg gøre det på samme måde. Derfor vil jeg
> hellere vise dig en anden måde at gøre det på som har den fordel at den
> kan søge ned i undermapper. Det har du godt nok ikke brug for, men man ved
> jo aldrig senere
>
> Det bliver dog først i morgen
>
> Og forresten, Birger har lavet en lille slåfejl:
>
> foreach ( $files as $fil) {
>
> Der skal stå:
>
> foreach ( $filer as $fil) {
>
> Hilsen
> Maritn

Jeg skulle netop til at kikke på det, så det vil jeg nu gøre!
Mvh Kurt



Birger Sørensen (02-02-2011)
Kommentar
Fra : Birger Sørensen


Dato : 02-02-11 23:28

Martin Larsen:
> Birger har allerede givet en fin løsning med glob(). Pånær nogle småting
> (mest rent stilmæssigt) ville jeg gøre det på samme måde. Derfor vil jeg
> hellere vise dig en anden måde at gøre det på som har den fordel at den kan
> søge ned i undermapper. Det har du godt nok ikke brug for, men man ved jo
> aldrig senere
>
> Og forresten, Birger har lavet en lille slåfejl:
> foreach ( $files as $fil) {
> Der skal stå:
> foreach ( $filer as $fil) {

Tak. Godt nogen er vågne.
Ville måske også have undret mig mere, hvis der ikke var et eller
andet....

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Birger Sørensen (02-02-2011)
Kommentar
Fra : Birger Sørensen


Dato : 02-02-11 13:20

Kurt G har bragt dette til verden:
> Jeg er ny udi javascript, derfor:
> Til visning af billeder har jeg brug for at lave et array (eller noget
> lignende), som indeholder navnene på alle filer med en bestemt endelse i en
> given folder på serveren!
>
> Jeg har søgt på nettet, men synes ikke, a jeg finder noget javascript, som
> kan lave det!
>
> Er det ikke muligt i JS?
>
> Mvh Kurt

Spørgsmålet hører til i PHPgruppen.
Og jeg antager PHP, fordi det er hvad du tilsyneladende har brugt før,
i tidligere tråde.
Og du får så et svar her alligevel

Til koden på f.eks.
http://bbsorensen.com/test/opacity/
kan du bruge denne

<?php
$path = '/billeder/'; // sti til folder med billeder
if ( $filer = glob( $path.'*.jpg')) {
echo '<script type="text/javascript>'."\n";
echo 'var imgs = new Array();'."\n"
$idx = 0;
foreach ( $files as $fil) {
echo 'imgs[ '.$idx++.'] = "'.$fil.'";'."\n";
}
echo '</script>'."\n";
}
?>

Det skal stå før den eksisterende JS kode i <head> af dokumentet - som
også skal hedde .php i stedet for .html - og den eksisterende kode, der
definerer billedfiler, skal fjernes (linien er definerer imgs og fold
skal fjernes, og det samme skal den løkke der lægger værdier i
arrayet).

Jeg har ikke testet, så der kan godt være småfjel.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Kurt G (03-02-2011)
Kommentar
Fra : Kurt G


Dato : 03-02-11 08:58

Jeg svaret lige flere steder herunder imellem ------------------------------
Kurt

"Birger Sørensen" <sdc@bbsorensen.com> skrev i en meddelelse
news:4d494bec$0$23763$14726298@news.sunsite.dk...
KLIPPET
>> Er det ikke muligt i JS?
>>
>> Mvh Kurt
>
> Spørgsmålet hører til i PHPgruppen.
------------------------------
Vel ikke, når jeg spørger: "Er det ikke muligt i JS?"
------------------------------
> Og jeg antager PHP, fordi det er hvad du tilsyneladende har brugt før, i
> tidligere tråde.
> Og du får så et svar her alligevel
>
> Til koden på f.eks.
> http://bbsorensen.com/test/opacity/
> kan du bruge denne
------------------------------
Jeg har kikket på det og mente netop, at jeg manglede automatisk opfyldning
af array-et for at få, hvad jeg har brug for!
------------------------------
> <?php
> $path = '/billeder/'; // sti til folder med billeder
> if ( $filer = glob( $path.'*.jpg')) {
> echo '<script type="text/javascript>'."\n";
> echo 'var imgs = new Array();'."\n"
> $idx = 0;
> foreach ( $files as $fil) {
> echo 'imgs[ '.$idx++.'] = "'.$fil.'";'."\n";
> }
> echo '</script>'."\n";
> }
> ?>
>
> Det skal stå før den eksisterende JS kode i <head> af dokumentet - som
> også skal hedde .php i stedet for .html - og den eksisterende kode, der
> definerer billedfiler, skal fjernes (linien er definerer imgs og fold skal
> fjernes, og det samme skal den løkke der lægger værdier i arrayet).
>
> Jeg har ikke testet, så der kan godt være småfjel.
>
> Birger
------------------------------
Jeg har prøvet at indsætte det lige efter /style og før check for IE.
Ligeledes har jeg udkommenteret :
//var imgs = new Array(); // Array til filnavne på de billeder der skal
vises
//var fold = 'sunset/'; // den folder billederne ligger i
//var nr = 0;
//for ( var idx = 1; idx < 14; idx++) { // 13 billeder i det valgte show
// nr = ( idx < 10) ? '0'+idx : idx; // de første 9 skal have et 0 tilføejt
i forhold til idx - ('0'+d).substr( -2, 2) virker kun i FF?
// imgs[ idx-1] = fold+'sunset'+nr+'.jpg';
// }

Folderne er således:
/TestPic med filen FraBirger.php
og
/TestPic/pics med billederne

Men det lykkes altså ikke umiddelbart, se
http://www.vinderup-egnshistorie.dk/TestPic/FraBirger.php

Mvh Kurt



Birger Sørensen (03-02-2011)
Kommentar
Fra : Birger Sørensen


Dato : 03-02-11 10:15

Kurt G kom med denne ide:
> ------------------------------
> Jeg har kikket på det og mente netop, at jeg manglede automatisk opfyldning
> af array-et for at få, hvad jeg har brug for!
> ------------------------------
>> <?php
>> $path = '/billeder/'; // sti til folder med billeder
>> if ( $filer = glob( $path.'*.jpg')) {
>> echo '<script type="text/javascript>'."\n";
>> echo 'var imgs = new Array();'."\n"
>> $idx = 0;
>> foreach ( $files as $fil) {
>> echo 'imgs[ '.$idx++.'] = "'.$fil.'";'."\n";
>> }
>> echo '</script>'."\n";
>> }
>> ?>
>>
> ------------------------------
> Jeg har prøvet at indsætte det lige efter /style og før check for IE.
> Ligeledes har jeg udkommenteret :
> //var imgs = new Array(); // Array til filnavne på de billeder der skal vises
> //var fold = 'sunset/'; // den folder billederne ligger i
> //var nr = 0;
> //for ( var idx = 1; idx < 14; idx++) { // 13 billeder i det valgte show
> // nr = ( idx < 10) ? '0'+idx : idx; // de første 9 skal have et 0 tilføejt i
> forhold til idx - ('0'+d).substr( -2, 2) virker kun i FF?
> // imgs[ idx-1] = fold+'sunset'+nr+'.jpg';
> // }
>
> Folderne er således:
> /TestPic med filen FraBirger.php
> og
> /TestPic/pics med billederne
>
> Men det lykkes altså ikke umiddelbart, se
> http://www.vinderup-egnshistorie.dk/TestPic/FraBirger.php
>
> Mvh Kurt

I den stump PHP du har indsat, skal du sætte $path til den mappe hvor
du har billederne.
Det skal svjks være
$path = 'pics/';

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Kurt G (03-02-2011)
Kommentar
Fra : Kurt G


Dato : 03-02-11 16:35

KLIPPET

> I den stump PHP du har indsat, skal du sætte $path til den mappe hvor du
> har billederne.
> Det skal svjks være
> $path = 'pics/';
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>

Nu har jeg prøvet mange forskellige ting, men der er ikke held ved det.

Jeg har sat stien til det korrekte, men lige meget hjælper det.
For at finde fejlen, har jeg fjernet al PHP-kode og al JS-kode.
Så skulle billederne gerne vises.
Koden er nu:
<body>
<h1>Billed overgang</h1>
<div class="img_cont">
<img class="img_sh" id="/TestPic/pics/img1" src="img2.jpg"
alt="billed 1" title="billed 1">
<img class="img_sh" id="/TestPic/pics/img2" src="img1.jpg"
alt="billed 2" title="billed 2">
</div>
</body>
men kikker jeg på egenskaberne for (det manglende) billede, står der:
http://www.vinderup-egnshistorie.dk/TestPic/img1.jpg
altså uden /pics/.

Retter jeg til;
<img class="img_sh" id="/pics/img2" src="img1.jpg" alt="billed 2"
title="billed 2">
er resultatet det samme, også hvis jeg fjerner den første "/" i stien.

Den eneste måde, som jeg kan få det til at vise billeder på, er ved at have
billederne i samme folder som koden!

Jeg ved, at det ved PHP kan være svært med stier ind imellem, men det her er
jo html.

Mystisk!

Mvh Kurt



Birger Sørensen (03-02-2011)
Kommentar
Fra : Birger Sørensen


Dato : 03-02-11 17:35

Kurt G forklarede den 03-02-2011:
> KLIPPET
>
>> I den stump PHP du har indsat, skal du sætte $path til den mappe hvor du
>> har billederne.
>> Det skal svjks være
>> $path = 'pics/';
>>
>> Birger
>>
>> -- http://varmeretter.dk - billig, sund og hurtig mad
>> http://bbsorensen.dk
>>
>
> Nu har jeg prøvet mange forskellige ting, men der er ikke held ved det.
>
> Jeg har sat stien til det korrekte, men lige meget hjælper det.
> For at finde fejlen, har jeg fjernet al PHP-kode og al JS-kode.
> Så skulle billederne gerne vises.
> Koden er nu:
> <body>
> <h1>Billed overgang</h1>
> <div class="img_cont">
> <img class="img_sh" id="/TestPic/pics/img1" src="img2.jpg"
> alt="billed 1" title="billed 1">
> <img class="img_sh" id="/TestPic/pics/img2" src="img1.jpg"
> alt="billed 2" title="billed 2">
> </div>
> </body>
> men kikker jeg på egenskaberne for (det manglende) billede, står der:
> http://www.vinderup-egnshistorie.dk/TestPic/img1.jpg
> altså uden /pics/.
>
> Retter jeg til;
> <img class="img_sh" id="/pics/img2" src="img1.jpg" alt="billed 2"
> title="billed 2">
> er resultatet det samme, også hvis jeg fjerner den første "/" i stien.
>
> Den eneste måde, som jeg kan få det til at vise billeder på, er ved at have
> billederne i samme folder som koden!
>
> Jeg ved, at det ved PHP kan være svært med stier ind imellem, men det her er
> jo html.
>
> Mystisk!
>
> Mvh Kurt

For det første er det PHP der finder billederne og altså PHP der skal
kende den rigtige sti.
Du kan ikke få HTML til at finde billederne.

For det andet, er det i dine forsøg, den forkerte parameter du leger
med. id er er et id for elementet der viser billederne - det bruges af
JS, og du skal ikke pille ved det, uden også at ændre de rigtige steder
i JS-koden. ^^
Du skal bruge src attributten til filnavn og -sti.
Men jeg tror du er på det rigtige spor - det er stien der ikke er
rigtig. Jeg vil dog foreslå dig at vende tilbage til det oprindelige,
og forsøge at manipulere $path, så billederne vises. Det er den der
bestemmer hvor PHP leder efter filerne.
Som jeg forstår din opbygnng, skal den hedder ente '/pics/' eller
'pics/'.
Den sidste / *skal* være der - om den første skal kan jeg ikke huske.
Der søges (i mit oprindelige forlsg) efter *.jpg - altså filer der
hedder jpg til "efternavn". Og det her er versalfølsomt
(casesensitive), så der er forskel på store og små bogstaver.

I den kildekode der kommer ud af det, skal der i <head> i HTML filen
oprettes et <script> tag, hvori arrayet med billeder oprettes. Men det
er udformet sådan, at hvis PHP ikke kan finde billeder (enten stien er
forkert, eller der ikke kan findes nogen fil af den aktuelle slags),
bliver dette <script> slet ikke oprettet.
Så du kan se i kildekoden om der findes filer, og hvis der gør, hvad de
hedder.

Håber det hjælper lidt...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Kurt G (03-02-2011)
Kommentar
Fra : Kurt G


Dato : 03-02-11 23:29

KLIPPET
> For det første er det PHP der finder billederne og altså PHP der skal
> kende den rigtige sti.
> Du kan ikke få HTML til at finde billederne.

Jeg har nok ikke forklaret det godt nok, men jeg lavede en side
http://www.vinderup-egnshistorie.dk/TestPic/FraBirger2.php
hvor der kun er html-kode.

Men jeg har prøvet sidst imellem BODY-taggene at skrive følgende:

$dir = opendir($_SERVER['DOCUMENT_ROOT']."/TestPic/pics/");
//List files in images directory
while (($file = readdir($dir)) != false)
{
$Streng = Trim($file);
If (strripos($Streng ,".jpg") != "")
{
$NameArray[] = $Streng;
echo "Fil:".$Streng."<br>";
}
}
closedir($dir);

og det lister godt nok filerne.

Når nu
$dir = opendir($_SERVER['DOCUMENT_ROOT']."/TestPic/pics/");
virker, burde så ikke også
$path = $_SERVER["DOCUMENT_ROOT"]."/TestPic/pics/";
virke?

> I den kildekode der kommer ud af det, skal der i <head> i HTML filen
> oprettes et <script> tag, hvori arrayet med billeder oprettes. Men det er
> udformet sådan, at hvis PHP ikke kan finde billeder (enten stien er
> forkert, eller der ikke kan findes nogen fil af den aktuelle slags),
> bliver dette <script> slet ikke oprettet.
> Så du kan se i kildekoden om der findes filer, og hvis der gør, hvad de
> hedder.

Der har jeg dette:
<script type='text/javascript>
var imgs = new Array();
imgs[0] =
'/customers/vinderup-egnshistorie.dk/vinderup-egnshistorie.dk/httpd.www/TestPic/pics/img1.jpg';
imgs[1] =
'/customers/vinderup-egnshistorie.dk/vinderup-egnshistorie.dk/httpd.www/TestPic/pics/img2.jpg';
</script>

For mig ser det ud til, at det er linierne
<img class="img_sh" id="pics/img1" src="img2.jpg" alt="billed 1"
title="billed 1">
<img class="img_sh" id="pics/img2" src="img1.jpg" alt="billed 2"
title="billed 2">
det er galt med, for
<p><img src="pics/img1.jpg" width="600" height="400"></p>
viser billedet.

Mvh Kurt

http://www.vinderup-egnshistorie.dk/TestPic/img1.jpg



Kurt G (03-02-2011)
Kommentar
Fra : Kurt G


Dato : 03-02-11 23:38

KLIPPET
> For mig ser det ud til, at det er linierne
> <img class="img_sh" id="pics/img1" src="img2.jpg" alt="billed 1"
> title="billed 1">
> <img class="img_sh" id="pics/img2" src="img1.jpg" alt="billed 2"
> title="billed 2">
> det er galt med, for
> <p><img src="pics/img1.jpg" width="600" height="400"></p>
> viser billedet.
>
> Mvh Kurt
>

Laver jeg
<img class="img_sh" id="pics/img1" src="img2.jpg" alt="billed 1"
title="billed 1">
om til
<img class="img_sh" id="pics/img1" src="pics/img2.jpg" alt="billed 1"
title="billed 1">
vises billederne, men der sker ingen udskiftnng af dem!

Mvh Kurt



Birger Sørensen (03-02-2011)
Kommentar
Fra : Birger Sørensen


Dato : 03-02-11 23:47

Den 03-02-2011, skrev Kurt G:
> KLIPPET
>> For mig ser det ud til, at det er linierne
>> <img class="img_sh" id="pics/img1" src="img2.jpg" alt="billed 1"
>> title="billed 1">
>> <img class="img_sh" id="pics/img2" src="img1.jpg" alt="billed 2"
>> title="billed 2">
>> det er galt med, for
>> <p><img src="pics/img1.jpg" width="600" height="400"></p>
>> viser billedet.
>>
>> Mvh Kurt
>>
>
> Laver jeg
> <img class="img_sh" id="pics/img1" src="img2.jpg" alt="billed 1"
> title="billed 1">
> om til
> <img class="img_sh" id="pics/img1" src="pics/img2.jpg" alt="billed 1"
> title="billed 1">
> vises billederne, men der sker ingen udskiftnng af dem!
>
> Mvh Kurt

Det er fordi du har ændret id for <img>. Så kan JS ikke finde dem, og
tingene virker ikke.
De to billedelementer, skal have hhv im1 og im2 som id ( hvis du stadig
har den oprindelige programmering).

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste