Avatar billede cogitans Nybegynder
26. juni 2004 - 18:00 Der er 8 kommentarer og
1 løsning

Hvordan søger man bibliotek igennem og registrerer indholdet?

Jeg har lavet en lille script, som laver en menu-agtig ting.
Men inde i de enkelte menuer, skal der vises indholdet af de pågældende bibliotekker på harisken - altså skal resultatet være noget "stifinder"-agtigt noget.

Her er den kode, som laver selve menuen:
<html>
<head>
<style>
<!--
#foldheader{cursor:pointer;cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//-->
</style>
<script language="JavaScript1.2">
<!--
var head="display:''"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"

var ns6=document.getElementById&&!document.all
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1

function checkcontained(e){
var iscontained=0
cur=ns6? e.target : event.srcElement
i=0
if (cur.id=="foldheader")
iscontained=1
else
while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){
if (cur.id=="foldheader"||cur.id=="foldinglist"){
iscontained=(cur.id=="foldheader")? 1 : 0
break
}
cur=ns6? cur.parentNode : cur.parentElement
}

if (iscontained){
var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]
if (foldercontent.style.display=="none"){
foldercontent.style.display=""
cur.style.listStyleImage="url(open.gif)"
}
else{
foldercontent.style.display="none"
cur.style.listStyleImage="url(fold.gif)"
}
}
}

if (ie4||ns6)
document.onclick=checkcontained

//-->
</script>
<body>
<font face="Verdana">

<ul>
<li id="foldheader">News</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="http://www.cnn.com">CNN</a></li>
<li><a href="http://www.abcnews.com">ABC News</a></li>
<li><a href="http://www.news.bbc.co.uk">BBC News</a></li>
</ul>

<li id="foldheader">Webmaster</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="http://www.dynamicdrive.com">Dynamic Drive</a></li>
<li><a href="http://www.javascriptkit.com">JavaScript Kit</a></li>
<li><a href="http://www.freewarejava.com">Freewarejava.com</a></li>
</ul>

<li id="foldheader">Nested Example</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="http://www.dynamicdrive.com">outer 1</a></li>
<li><a href="http://www.dynamicdrive.com">outer 2</a></li>
<li id="foldheader">Nested</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="http://www.dynamicdrive.com">nested 1</a></li>
<li><a href="http://www.dynamicdrive.com">nested 2</a></li>
</ul>
<li><a href="http://www.dynamicdrive.com">outer 3</a></li>
<li><a href="http://www.dynamicdrive.com">outer 4</a></li>
</ul>
</ul>

</font>

<p align="center"><font face="Arial" size="-2">Free DHTML scripts provided by<br>
<a href="http://www.dynamicdrive.com">Dynamic Drive</a></font></p>
<script language="JavaScript1.2">
<!--

function get_cookie(Name) {
//Get cookie routine by Shelley Powers
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
// if cookie exists
if (offset != -1) {
offset += search.length
// set index of beginning of value
end = document.cookie.indexOf(";", offset);
// set index of end of cookie value
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

var foldercontentarray=new Array()
var c=0

if (ns6){
for (i=0;i<document.getElementsByTagName("UL").length;i++){
if (document.getElementsByTagName("UL")[i].id=="foldinglist"){
foldercontentarray[c]=document.getElementsByTagName("UL")[i]
c++
}
}
}

if (get_cookie(window.location.pathname) != ''){
var openresults=get_cookie(window.location.pathname).split(" ")
for (i=0 ; i < openresults.length ; i++){
if (ns6){
foldercontentarray[openresults[i]].style.display=''
foldercontentarray[openresults[i]].previousSibling.previousSibling.style.listStyleImage="url(open.gif)"
}
else{
foldinglist[openresults[i]].style.display=''
document.all[foldinglist[openresults[i]].sourceIndex -1].style.listStyleImage="url(open.gif)"
}
}
}

if (ns6||ie4){
var nodelength=ns6? c-1 : foldinglist.length-1
var nodes=new Array(nodelength)
var openones=''
}

function checkit(){
for (i=0 ; i <= nodelength ; i++){
if ((ns6&&foldercontentarray[i].style.display=='')||(ie4&&foldinglist[i].style.display==''))
openones=openones + " " + i
}
document.cookie=window.location.pathname+"="+openones
}

if (ns6||ie4)
window.onunload=checkit
//-->
</script>
</body>
</html>

Nu har jeg så brug for et script, som dynamisk kan søge en mappe igennem, hvor indholdet vises gennem det scrpt, som jeg har lavet. Er der nogen, som kan hjælpe mig med dette?
Avatar billede retep Nybegynder
26. juni 2004 - 21:26 #1
Du kan vise indholdet af en mappe således:

<?php

$dir = "c:/";
$handle=opendir($dir);
while (($file = readdir($handle))!==false) {
    if ($file != "." &&  $file != ".."){
            echo "$file <br>";       
    }   
}
closedir($handle);
?>
Avatar billede retep Nybegynder
26. juni 2004 - 21:28 #2
Ovenstående viser indholdet af c: hvis du er på en windows maskine... ;)
Avatar billede retep Nybegynder
26. juni 2004 - 21:37 #3
Du får også lige et eksempel hvor det er flettet ind i din menu. For at det skal virke, skal du have 3 undermapper der hedder 'mappe1', 'mappe2' og 'mappe3'. Opret dem, smid nogle filer i, og kør så scriptet.
Avatar billede retep Nybegynder
26. juni 2004 - 21:37 #4
<html>
<head>
<style>
<!--
#foldheader{cursor:pointer;cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//-->
</style>
<script language="JavaScript1.2">
<!--
var head="display:''"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"

var ns6=document.getElementById&&!document.all
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1

function checkcontained(e){
var iscontained=0
cur=ns6? e.target : event.srcElement
i=0
if (cur.id=="foldheader")
iscontained=1
else
while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){
if (cur.id=="foldheader"||cur.id=="foldinglist"){
iscontained=(cur.id=="foldheader")? 1 : 0
break
}
cur=ns6? cur.parentNode : cur.parentElement
}

if (iscontained){
var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]
if (foldercontent.style.display=="none"){
foldercontent.style.display=""
cur.style.listStyleImage="url(open.gif)"
}
else{
foldercontent.style.display="none"
cur.style.listStyleImage="url(fold.gif)"
}
}
}

if (ie4||ns6)
document.onclick=checkcontained

//-->
</script>
<body>
<font face="Verdana">

<ul>
<li id="foldheader">News</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="<? echo $PHP_SELF."?show=1"; ?>">Mappe 1    </a></li>
<li><a href="<? echo $PHP_SELF."?show=2"; ?>">Mappe 2</a></li>
<li><a href="<? echo $PHP_SELF."?show=3"; ?>">Mappe 3</a></li>
</ul>

<li id="foldheader">Webmaster</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="http://www.dynamicdrive.com">Dynamic Drive</a></li>
<li><a href="http://www.javascriptkit.com">JavaScript Kit</a></li>
<li><a href="http://www.freewarejava.com">Freewarejava.com</a></li>
</ul>

<li id="foldheader">Nested Example</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="http://www.dynamicdrive.com">outer 1</a></li>
<li><a href="http://www.dynamicdrive.com">outer 2</a></li>
<li id="foldheader">Nested</li>
<ul id="foldinglist" style="display:none" style=&{head};>
<li><a href="http://www.dynamicdrive.com">nested 1</a></li>
<li><a href="http://www.dynamicdrive.com">nested 2</a></li>
</ul>
<li><a href="http://www.dynamicdrive.com">outer 3</a></li>
<li><a href="http://www.dynamicdrive.com">outer 4</a></li>
</ul>
</ul>

</font>

<p align="center"><font face="Arial" size="-2">Free DHTML scripts provided by<br>
<a href="http://www.dynamicdrive.com">Dynamic Drive</a></font></p>
<script language="JavaScript1.2">
<!--

function get_cookie(Name) {
//Get cookie routine by Shelley Powers
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
// if cookie exists
if (offset != -1) {
offset += search.length
// set index of beginning of value
end = document.cookie.indexOf(";", offset);
// set index of end of cookie value
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

var foldercontentarray=new Array()
var c=0

if (ns6){
for (i=0;i<document.getElementsByTagName("UL").length;i++){
if (document.getElementsByTagName("UL")[i].id=="foldinglist"){
foldercontentarray[c]=document.getElementsByTagName("UL")[i]
c++
}
}
}

if (get_cookie(window.location.pathname) != ''){
var openresults=get_cookie(window.location.pathname).split(" ")
for (i=0 ; i < openresults.length ; i++){
if (ns6){
foldercontentarray[openresults[i]].style.display=''
foldercontentarray[openresults[i]].previousSibling.previousSibling.style.listStyleImage="url(open.gif)"
}
else{
foldinglist[openresults[i]].style.display=''
document.all[foldinglist[openresults[i]].sourceIndex -1].style.listStyleImage="url(open.gif)"
}
}
}

if (ns6||ie4){
var nodelength=ns6? c-1 : foldinglist.length-1
var nodes=new Array(nodelength)
var openones=''
}

function checkit(){
for (i=0 ; i <= nodelength ; i++){
if ((ns6&&foldercontentarray[i].style.display=='')||(ie4&&foldinglist[i].style.display==''))
openones=openones + " " + i
}
document.cookie=window.location.pathname+"="+openones
}

if (ns6||ie4)
window.onunload=checkit
//-->
</script>

<?php

if (isset($_GET["show"]) && is_numeric($_GET["show"])){

    switch($_GET["show"]){
        case 1:
                $dir = "mappe1/";
            break;
        case 2:
                $dir = "mappe2/";
            break;
        case 3:
                $dir = "mappe3/";   
            break;
        default:
            exit;   
    }

   
    $handle=opendir($dir);
    while (($file = readdir($handle))!==false) {
        if ($file != "." &&  $file != ".."){
                echo "$file <br>";       
        }   
    }
    closedir($handle);
}
?>
</body>
</html>
Avatar billede cogitans Nybegynder
27. juni 2004 - 12:57 #5
Tak for det fuldstændige eksempel :-)
Men når jeg kører det, så kommer dette resultat:

"
News
  ">Mappe 1
  ">Mappe 2
  ">Mappe 3
Webmaster
  Dynamic Drive
  JavaScript Kit
  Freewarejava.com
Nested Example
  outer 1
  outer 2
  Nested
  nested 1
  nested 2
  outer 3
  outer 4
"

Og når jeg så trykker på ">Mappe 1" eller de andre links, så kommer der en fejlmeddelelse (?).
Er det muligt, at jeg kan få koden, så hele "linktræet" starter fra C:\Inetpub\wwwroot\FTP, hvor linkene så henviser til undermapper og filer herfra?
Avatar billede retep Nybegynder
27. juni 2004 - 13:13 #6
Nej, ikke fra mig i hvert fald... så meget gider jeg ikke kode for points ;)

Nu har du det grundlæggende, så må du prøve dig lidt frem (eller håbe der kommer nogen forbi der gidder).

;)
Avatar billede cogitans Nybegynder
28. juni 2004 - 12:42 #7
Nu er jeg så ved at prøve mig frem ved kodning selv. Men næste problem er så, at koen her jo er i vb, hvilket jeg ikke kender til. Koden, som jeg selv skriver nu, er C#, hvor jeg har fået den ønskede funktionalittet ind. Men hvordan kaler jeg så en c# fil, initialiserer den, og efterfølgende benytter den fra vb-koden?
Avatar billede retep Nybegynder
28. juni 2004 - 13:23 #8
PHP er absolut ikke VB-kode!!! ;)

Det er vist et spørgsmål i sig selv. Jeg har ingen ide om det...
Avatar billede cogitans Nybegynder
28. juni 2004 - 15:03 #9
:-) ah, det var nu mit eget kode her i eksemplet, som jeg vil benytte med en c#-fil, hvilken søger filsystemet igennem. Men min kode herinde er jo slet ikke vb, men derimod js...så kan man benytte en c#-fil gennem javascriptet her?
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