php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.03.2006, 21:33  
Benutzer
 
Registriert seit: 15.06.2005
Beiträge: 66
bona
bona eine Nachricht über ICQ schicken bona eine Nachricht über MSN schicken
Standard dynamische eine id vergeben...

hallo zusammen...
ich habe mit php ein menu gemacht, dass sich aus der ordnerstruktur selbst generiert...

und da ich das menu mit javascript aufklappbar gemacht habe, musste ich eine id vergeben...

doch bis jetzt habe ichs nur geschafft, dass es eifach durchnummeriert wird...
aber nun möchte ich, dass es pro ebene neu durchnummeriert wird..

sprich:
ordner (id=1)
ordner (id=1)
ordner (id=2)
ordner (id=2)
ordner (id=1)
ordner (id=2)
ordner (id=1)
ordner (id=2)
ordner (id=3)
ordner (id=3)
ordner (id=3)
ordner (id=1)
ordner (id=1)


versteht man was ich meine??

PHP-Code:
<?php
function menu_create($dir$path$spacecount 0)
{
   static 
$index 0;
   
$space "";
   
$ret "";
   
   
$index++;
   
   
//alle Arrayeinträge durchlaufen
   
foreach ($dir as $key=>$value)
   {
      
//entsprechend der Pfadtiefe einücken
      
for ($i=$spacecount;$i>0;$i--) $ret .= $space;
      
      
//Prüfen, ob Bilder im aktuellen Ordner zu finden sind
      
if (check4pics($path."/".$key)) 
      {
         
//Link aufbereiten
         
$nice_looking_path explode("/"$path3);
         
$link "?loc=".$nice_looking_path[2]."/".$key;      
         
         
$ret .= '[url="'.$link.'"]'.$key.'[/url]
'
."\n";
      }
      else 
      {
         
$link "#";
         
$ret .= '[url="'.$link.'"]'.$key.'[/url]
'
."\n";
             
      }
      
      
$ret .= '<span id="'.$index.'" style="display:none">'."\n";     

      
      if (
is_array($value))
      { 
         
$ret .= menu_create($value$path."/".$key$spacecount+1);
      }
      
      
$ret .= "</span>";
      
   }
   
   
   return 
$ret;
}

<
table>
      <
tr>
          <
td valign="top">
  <?
php
  
echo menu_create($menu_dir$menu_scandir);
  
?>
          </td>
      </tr>
  </table>
<?
}
else
{
   echo 
"<a href=\"".$_SERVER['SCRIPT_NAME']."\">home</a>\n";
   echo 
"<hr>\n";
   echo 
Thumbnails::Output($_GET["loc"]);

}
?>

kann mir jemand einen tipp geben??

gruss bona
__________________
Meine Homepage:
www.myh.ch
www.patriziakeller.ch
bona ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.03.2006, 08:13  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Du kannst soweit ich weiß nicth ein PHP Array an ein JavaScript weitergeben !

Das versuchst du doch hier oder ?



PHP-Code:
<?php
echo "menu_create(".$menu_dir.",." $menu_scandir.")"
  
?>
function "menu_create($dir, $path, $spacecount = 0){ 
 ...
 foreach ($dir as $key=>$value) { 
  ...
 }
}
Ach so un dso richtig verstehe ich nciht was du meinst denn
deine "ebenen" wären ja irgendwie doppelt nummeriert
.. so oft wie bei dir die "1" auftaucht ... soll das die "tiefe" sein ?

und dein echo so wie du's machen wolltest passt ja auch nciht recht ?!
Du solltest wirklich nochmal schaun wie PHP und JS zusammen
funktioniert weil so wie du das denks tgeht das nicht weil PHP ist Serverseitig und JS Clientseitig !!!
Das solltest du auf jeden Fall berücksichtigen.

Ach so und du solltest schon den kompletten Quellcode udn nicht nur "bruchteile" zeigen.
weil wo deine Variablen herkommen kann man nur raten !
M3g4Star ist offline  
Alt 03.03.2006, 10:45  
Benutzer
 
Registriert seit: 15.06.2005
Beiträge: 66
bona
bona eine Nachricht über ICQ schicken bona eine Nachricht über MSN schicken
Standard

das script welches ich oben gepostet habe funktioniert mit javascript zusammen....

ja, das sollte die tiefe datstellen :P

wollte die id dann als zahlenkombination (1 2 1 0) oder so gebrauchen...

hier noch das ganze php script:

PHP-Code:
<?php

class Thumbnails 
{
   function 
Output ($path)
   {
       
$imageextensions = array("jpg""jpeg""png""gif""bmp"); 
   
       
$dir "./images/".$path."/";
   
       
$ret "<table cellpadding=0 cellspacing=0 style=\"border:none\">\n";
   
       
$files scandir($dir);
       foreach (
$files as $file)
       {
          
$info pathinfo($dir.$file);
          if (
in_array(strtolower($info['extension']), $imageextensions))
          {
             
$link $_SERVER['SCRIPT_NAME']."?loc=".$path."&amp;img=".$info['basename'];
             
             
$ret .= "<tr><td height=\"50px\" style=\"text-align:center;border:1px black solid\">\n<a href=\"".$link."\"><img src=\"image.php?size=thumbnail&amp;file=".$info['dirname']."/".$info['basename']."\" alt=\"\" border=0></a></td></tr><tr height=3><td style=\"border:none\"></td></tr>\n\n";
          }
       }
   
       
$ret .= "</table>";
   
       return 
$ret;

   }
}

function 
menu_create($dir$path$spacecount 0)
{
   static 
$index 0;
   
$space "";
   
$ret "";
   
   
$index++;
   
   
//alle Arrayeinträge durchlaufen
   
foreach ($dir as $key=>$value)
   {
      
//entsprechend der Pfadtiefe einücken
      
for ($i=$spacecount;$i>0;$i--) $ret .= $space;
      
      
//Prüfen, ob Bilder im aktuellen Ordner zu finden sind
      
if (check4pics($path."/".$key)) 
      {
         
//Link aufbereiten
         
$nice_looking_path explode("/"$path3);
         
$link "?loc=".$nice_looking_path[2]."/".$key;      
         
         
$ret .= '[url="'.$link.'"]'.$key.'[/url]
'
."\n";
      }
      else 
      {
         
$link "#";
         
$ret .= '[url="'.$link.'"]'.$key.'[/url]
'
."\n";
             
      }
      
      
$ret .= '<span id="'.$index.'" style="display:none">'."\n";     

      
      if (
is_array($value))
      { 
         
$ret .= menu_create($value$path."/".$key$spacecount+1);
      }
      
      
$ret .= "</span>";
      
   }
   
   
   return 
$ret;
}
function 
check4pics ($dir)
{
   
$imageextensions = array("jpg""jpeg""png""gif""bmp"); 
   
   
$files scandir($dir);
   foreach (
$files as $file)
   {
      if (
file_exists($dir."/".$file))
      {
          
$info pathinfo($dir."/".$file);
          if (isset(
$info["extension"]) AND in_array(strtolower($info["extension"]), $imageextensions)) return 1;
      }
   }
   return 
0;
}

function 
rec_scandir($dir)
{
   
$files = array();
   if ( 
$handle opendir($dir) ) 
   {
       while ( (
$file readdir($handle)) !== false 
       {
           if ( 
$file != ".." && $file != "." )  
           {
               if ( 
is_dir($dir "/" $file) ) 
               {
                   
$files[$file] = rec_scandir($dir "/" $file);
               }else {
                   
//$files[] = $file;  <-- files nicht auflisten!
               
}
           }
       }
       
closedir($handle);
       return 
$files;
   }
}

function 
cmp($a$b)
{
   if ( 
is_string($a) && is_string($b) ) 
   {
       return 
strcmp($a$b) > : -1;
   }elseif ( 
is_int($a) && is_int($b) ) 
   {
       return 
$a $b : -1;
   }elseif ( 
is_int($a) && is_string($b) ) 
   {
       return 
1;
   }elseif ( 
is_string($a) && is_int($b) ) 
   {
       return -
1;
   }else {
       return 
0;
   }
}

function 
array_ukmultisort(&$arr$func
{
   
uksort($arr$func);
   while ( list(
$key$val) = each($arr) ) 
   {
       if ( 
is_array($val) ) {
           
array_ukmultisort($arr[$key], $func);
       }
   }
}

if (!isset(
$_GET["loc"]))
{
  
//Einstellungen
  
$menu_cache 0;        //Menucache on = 1, off = 0
  
$menu_scandir "./images";
  
  
//Bilderordner scannen
  
if ( $menu_cache == OR !isset($_SESSION["menu_dir"]))
  {
    
$menu_dir rec_scandir($menu_scandir);
    
array_ukmultisort($menu_dir"cmp");
   
    
$_SESSION["menu_dir"] = $menu_dir;
  }
  elseif ( isset(
$_SESSION["menu_dir"]) ) 
  {
     
$menu_dir $_SESSION["menu_dir"];
  }
  
?>
  <script language="JavaScript" type="text/javascript">
  <!--
  function outline(id)
  {
   if(document.getElementById(id).style.display == 'none')
   {
    document.getElementById(id).style.display = 'block';
   }
   else
   {
    document.getElementById(id).style.display = 'none';
   }
  }
  function hideAll(exceptID) 
   { 
     if (exceptID != id) 
     {
      document.getElementById(id).style.display = 'none'; 
     }
   }
  
  //-->
  </script>
  <table>
      <tr>
          <td valign="top">
  <?php
  
echo menu_create($menu_dir$menu_scandir);
  
?>
          </td>
      </tr>
  </table>
<?
}
else
{
   echo 
"<a href=\"".$_SERVER['SCRIPT_NAME']."\">home</a>\n";
   echo 
"<hr>\n";
   echo 
Thumbnails::Output($_GET["loc"]);

}



?>
das javascript hätte ich schon dafür, doch ich bräuchte eben noch die information, in welcher ebene(tief, unterordner oder wie man dem sagen kann) der link bzw. der menüpunkt ist.

gruss bona
__________________
Meine Homepage:
www.myh.ch
www.patriziakeller.ch
bona ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dynamische Umfrage webbi PHP-Fortgeschrittene 4 21.06.2006 13:54
Dynamische Grafik in PHP PHP Tipps 2005-2 6 26.07.2005 11:47
[Erledigt] Einer vorhandenen Datenbank eine Prefix vergeben Datenbanken 1 01.07.2005 12:34
Dynamische Menüse ohne Javascript ?? PHP Tipps 2005 2 13.04.2005 17:49
Dynamische Menüse ohne Javascript ?? PHP Tipps 2005 1 13.04.2005 14:32
Dynamische Anzhal an Checkboxen workaholic PHP Tipps 2005 2 16.02.2005 12:42
schreibrechte bei ordnern auf dem webserver vergeben Server, Hosting und Workstations 8 05.02.2005 19:13
[erledigt] nl2br & dynamische Tabelle Magic PHP Tipps 2004-2 4 03.12.2004 17:53
Formmailer Kundennummer vergeben PHP Tipps 2004 1 01.11.2004 20:22
Dynamische Playlist PHP Tipps 2004 1 17.09.2004 08:14
dynamische Auswahlbox PHP Tipps 2004 4 16.09.2004 16:23
dynamische Fotogalerie Beitragsarchiv 7 27.08.2004 11:28
suche dynamische "bookmark / favoriten" script... PHP Tipps 2004 1 04.08.2004 22:38
Templates (?) - dynamische Seite - Problem PHP Tipps 2004 0 15.07.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php id automatisch vergeben, php dynamisch id\'s vergeben, tabelle id vergeben javascript, per javascript id vergeben, php bilder id vergeben, php menu class id automatisch vergeben while(list($key, $val)), php script ids vergeben, javascript dynamisch id vergeben, js dynamisch id vergeben, php array benutzer key neu vergeben, javascript ids dynamisch vergeben, js id vergeben, javascript id vergeben, dynamische id vergeben, php id vergeben, link ein img vergeben php, id vergeben javascript, http://www.php.de/php-tipps-2006/37764-dynamische-eine-id-vergeben.html, zahlen dynamisch vergeben, html dynamisches image array png

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.