Pulldown met directory listing

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Maverick2001
  • Registratie: Februari 2001
  • Laatst online: 10:17

Maverick2001

Never look back

Topicstarter
Situatie:
Ik heb een aantal directorys die ik automatisch uitlees op een pagina. De verschillede directorys komen in een pulldown en bij het kiezen van een directory moet de inhoud van de betreffende directory getoond worden.

Ik heb het script niet zelf geschreven maar samengesteld en bewerkt zodat het toegepast kan worden op mijn situatie.

Ik krijg netjes een listing van de directory inhoud echter krijg kan ik niet switchen naar de inhoud van de andere directory.

Ter info de hoofddirectory waar de sub-dirs instaan is 'gallery'.

Wat heb ik tot nu toe gedaan?
> veel veel sleutelen aan bestaande situatie
> forums afgezocht naar gelijksoortige situaties (zonder resultaat)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<select name="file">
<option value='empty'>Select a file</option> 
<?php
$dirname = "gallery/";
$dh = opendir($dirname);
$count = 0;

while ($file = readdir($dh)) {
if (substr($file, -4) != ".jpg" ) {
print "<option value='$dirname$file'>$file</option>\n"; }
}
closedir($dh);
?>
</select>

<?php 
  //getting all files of desired extension from the dir using explode 
  $intoets = 'waarde'; 
$path2 = "/pad/domein/$file";
  $desired_extension = 'jpg'; //extension we're looking for 
  $direc = "gallery";
  $dirname = $direc . $file; 
  $dir = opendir($dirname); 
 

  while(false != ($file = readdir($dir))) 
  { 
    if(($file != ".") and ($file != "..")) 
    { 
      $fileChunks = explode(".", $file); 
      if($fileChunks[1] == $desired_extension) //interested in second chunk only 
      {       
         
        echo '<li><a href="#"><img src="gallery/'.$file.'" /><img src="gallery/'.$file.'" class="preview" /></a></li>';
        
        
        
      } 
    } 
  } 
  closedir($dir); 
?>

[ Voor 30% gewijzigd door Maverick2001 op 25-08-2009 21:35 ]

Pura Vida


Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
.

[ Voor 98% gewijzigd door _js_ op 26-08-2009 00:48 ]


Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Je geeft aan het begin van de code aan dat je de directory "gallery/" wilt uitlezen, je kunt dat dynamisch maken, door bijvoorbeeld als iemand een directory in de lijst aanklikt dat je dan de pagina opnieuw aanroept met de naam van die directory als $_GET variabele en dat achter "gallery/" plakken (wel controleren of het samengestelde pad dieper ligt dan gallery/, anders kunnen mensen je hele server uitlezen).

Trouwens, plaatjes kunnen meer dan een punt in de naam hebben, die laat je nu niet zien.

Acties:
  • 0 Henk 'm!

  • Keeper
  • Registratie: Juni 2001
  • Niet online

Keeper

<3 Ruby

Hoe verstuur je precies je formulier naar het script?

[ Voor 4% gewijzigd door Keeper op 26-08-2009 00:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Php is wel wat lang geleden voor mij, maar volgens mij moet je in de action van de select (of in een form tag daaromheen) de url van het script opgeven, ofwel nu wordt het 'OnSelectedIndexChange' event van de listbox niet afgevangen (om maar even in ASP.NET termen te blijven). Server-side gebeurt er dus niks.

Overigens zitter er wel rare dingen in het script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select name="file">
<option value='empty'>Select a file</option> 
<?php
$dirname = "gallery/";
$dh = opendir($dirname);
$count = 0;

while ($file = readdir($dh)) {
if (substr($file, -4) != ".jpg" ) {
print "<option value='$dirname$file'>$file</option>\n"; }
}
closedir($dh);
?>
</select>


De options bevatten volgens mij nu niet alleen directories, maar ook files die niet op .jpg eindigen.

code:
1
 while(false != ($file = readdir($dir)))


Waarom doe je dit? Je kunt toch ook gewoon doen:

code:
1
while ($file = readdir($dir))


Maakt het mijn inziens intuïtiever.

Acties:
  • 0 Henk 'm!

  • Maverick2001
  • Registratie: Februari 2001
  • Laatst online: 10:17

Maverick2001

Never look back

Topicstarter
Ik heb aardig gesleuteld aan het script, hij leest nu wel de directory uit echter nu moet het bestand wel in de subdirectory staan waar alle mapjes in staan. Ik wil deze liever een map hoger plaatsen echter krijg ik het niet voorelkaar een subdirectory te definiëren die uitgelezen moet worden:

code:
1
*snip*

[ Voor 65% gewijzigd door Creepy op 30-08-2009 20:18 ]

Pura Vida


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:01

Creepy

Tactical Espionage Splatterer

En wat heb je dan zelf al geprobeerd? wat lukte daar niet mee? Alleen aangeven wat je wilt en je code geven is niks meer dan een ordinair scriptrequest. Daarnaast is melden dat je veel hebt gesleuteld overbodig. Meld dan wat je hebt gesleuteld en wat er niet mee lukte ;)

[ Voor 20% gewijzigd door Creepy op 30-08-2009 20:20 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Maverick2001
  • Registratie: Februari 2001
  • Laatst online: 10:17

Maverick2001

Never look back

Topicstarter
Ik geef volgens mij heel netjes aan wat er niet lukt! Vind de opmerking dat het een 'ordinair script request' is ook niet op zijn plaats.

Zoals ik al aangeef word er nu een directory listing gemaakt van de directory waar ik het script in heb staan.

Wat ik gedaan heb ik op alle mogelijke manieren proberen het pad aan te passen echter zonder effect. Vandaar mijn vraag hoe ik dat wel voor elkaar krijg.

Pura Vida


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:01

Creepy

Tactical Espionage Splatterer

Maverick2001 schreef op maandag 31 augustus 2009 @ 08:14:
Ik geef volgens mij heel netjes aan wat er niet lukt! Vind de opmerking dat het een 'ordinair script request' is ook niet op zijn plaats.

Zoals ik al aangeef word er nu een directory listing gemaakt van de directory waar ik het script in heb staan.

Wat ik gedaan heb ik op alle mogelijke manieren proberen het pad aan te passen echter zonder effect. Vandaar mijn vraag hoe ik dat wel voor elkaar krijg.
offtopic:
Je geeft aan wat er niet is gelukt, maar je geeft niet aan hoe je dat hebt geprobeerd op te lossen. Noemen wat je wel is gelukt is niet relevant als dat niet direct met je probleem te maken heeft. Pas na mijn vragen kom je met iets meer informatie aanzetten (dat je het pad hebt aangepast) maar het zou ons enorm helpen als je zou aangeven hoe je dat precies hebt gedaan. We weten nu nog steeds niet precies wat je hebt geprobeerd. Als we dat wel weten kunnen we jou beter van informatie voorzien en voorkomt dat we oplossingen gaan geven die je al hebt geprobeerd en niet werken. Het is niet alleen dat je die informatie moet geven om te laten zien dat je wel degelijk zelf mee aan de slag bent geweest maar het geeft ons ook meer inzicht in het daadwerkelijke probleem.


Dus hoe heb je het pad precies aangepast dan? Heb je met het debuggen het uiteindelijk pad gecontroleerd dat je moest hebben? Wat kwam daar dan uit?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1