Dropdown-Menu durch auslesen von links aus einer .TXT-Datei

webfire

Grünschnabel
Hallo!
Ich bin ein script am basteln, mit dem ich links aus einer TXT-Datei auslesen möchte und diese in ein Dropdown-Menu einzulesen. Aber leider bekomme ich eine Fehlermeldung, dass ein Parse error in line 111 ist. Das komische ist nur ich hab nur 110 zeilen.

?

Desweiteren habe ich noch eine Frage.
Der Volgende code ist mein script.
Ist in dem script alles was ich brauche, dass der später auch mehrere links in dem DD-Menu anzeigt? Automatisch. Oder wie kann ich das realisieren.
Die page dient am ende um bilder aus ordnern auszulesen, und eine galerie mit mehreren kathegorien zu erstellen. Deswegen auch das DD_Menu.

Vielen Dank im voraus.

PHP:
<html>
<head>
	<title>Unbenannt</title>
	
<script language="JavaScript"><!--
  function Go(x) {
    if(x == "nothing") {
      document.forms[0].reset();
      document.forms[0].elements[0].blur();
      return;
    }  
    else if(x == "end") top.location.href = document.location;
         else {
          document.location.href = x;
          document.forms[0].reset();
          document.forms[0].elements[0].blur();
         }
  }
  </script>
	
</head>

<body>
<?php 

if($_GET) { extract($_GET, EXTR_PREFIX_SAME, "get_"); }
if (!$gal) { $gal = 1; } 
if (!$pic) { $pic = 1; }

// Auslesen der Links aus der links.txt
$n = 1;
$links = array();
$fp = fopen("links.txt", "r");
while (!feof($fp)) {
  $link = fgets($fp, 500);
if($link) {
  $links[$n] = rtrim($link);
  $n++; } }
fclose($fp);

// Oeffnen des Aktuellen Bilder Ordners
$dir= "gal".$gal;
@$d = dir($dir); 

// Auslesen der Bilddatein aus den Unterordnern
if ($d) { 
  while($entry=$d->read()) {  
    $entry = preg_replace("/ /","%20",$entry);
    $posa = strpos (strtolower($entry), ".jpg");
    $posb = strpos (strtolower($entry), ".gif");
    if (!($posa === false) || !($posb === false)) {  
      $arr_pic[] = $dir."/".$entry; } }
  $d->close(); }
  
// Alphabetische Ordnung der Bilder
@sort ($arr_pic);     
$total  = sizeof($arr_pic);

// AUslesen der Kommentare, wenn vorhanden
$cmt = $dir.".txt";
if (file_exists($cmt)) {  
  $n = 0;
  $comment = array();
  $fp = fopen($cmt, "r");
  while (!feof($fp)) {
    $tekst = fgets($fp, 5000);
    if ($tekst) {
      $comment[$n] = stripcslashes($tekst);
	  $n++; } }
  fclose($fp);
  $comments = $comment[$pic-1]; }
  

// Navigations Links
if ( $pic<2) { $prev_url="?gal=".$gal."&pic=1"; } else { $prev_url='?gal='.$gal.'&pic='.($pic-1); }
if ( $pic+1>$total) { $next_url="?gal=".$gal."&pic=".$pic; } else { $next_url='?gal='.$gal.'&pic='.($pic+1); }
if ( $pic-10<1) { $skip_back_url='?gal='.$gal.'&pic=1'; } else { $skip_back_url='?gal='.$gal.'&pic='.($pic-10); }
if ( $pic+10>$total) { $skip_url='?gal='.$gal.'&pic='.$total; } else { $skip_url='?gal='.$gal.'&pic='.($pic+10); }

// links
for ($i=1; $i<=sizeof($links); $i++) {
echo "<form name='Formular'><select size='1' name='Auswahl' onChange='Go(document.Formular.Auswahl.options[document.Formular.Auswahl.options.selectedIndex].value)' style='width:290px; background-color:#FFFFFF; font-family:Areal,sans-serif; font-size:9pt; color : blue'>";
echo "<option value='nothing' selected>'----------'</option>";
echo "<option value=?gal='.$i.'>'.$links[$i].'</option>";
echo "<option value='nothing' selected>'----------'</option>";

echo "<br><br>";

// Fotos
echo "<a href=\"".$next_url."\"><img src=".$arr_pic[$pic-1]." ></a>";

echo "<br><br>";

// Kommentare
echo $comments;

echo "<br><br>";

// Navigation
echo "<a href=\"".$skip_back_url."\">10 Zur&uuml;ck</a> | "; 
echo "<a href=\"".$prev_url."\">Zur&uuml;ck</a> | ";
echo $pic." von ".$total." | ";
echo "<a href=\"".$next_url."\">Weiter</a> | ";
echo "<a href=\"".$skip_url."\">10 Weiter</a>";

?>
</body>
</html>
 
Zu Problem 1.
Wahrscheinlich fehlt da ne geschweifte Klammer. -> } <-
Schau dir mal die "For-schleife" an.
lg
Garlof
 
Vielen dank! Klammer gefunden.
Jetzt hab ich aber leider ein problen, dass unter // links ein fehler in der einbindung von meinem DD-Menu ist. Wie kann ich das beheben. hab leider fast keine ahnung von php.
hab alles aus codeschnippseln zusammengestellt.
 
tag
habs nur kurz ueberflogen... aber muesste des net
if($x == "nothing") anstelle von
if(x == "nothing") heissen

(sowie $x bei x=="end")?
 
Ich glaube nicht. Oder es kann sein, dass es auf 2 arten funkioniert, weil vorher hatte ich das selbe script, nur mit ner anderen linkausgabe. Aber da ich dort mehrere galerien einbinden möchte, wäre ein DropDown-Menu am besten. Der rest von dem Script funktioniert. das einzige, was nicht läuft ist die stelle mit den links.

Ich vermute, das daher nur in volgenem abschnitt ein fehler ist.
PHP:
// links
for ($i=1; $i<=sizeof($links); $i++) {
echo "<form name='Formular'><select size='1' name='Auswahl' onChange='Go(document.Formular.Auswahl.options[document.Formular.Auswahl.options.selectedIndex].value)' style='width:290px; background-color:#FFFFFF; font-family:Areal,sans-serif; font-size:9pt; color : blue'>";
echo "<option value='nothing' selected>'----------'</option>";
echo "<option value=?gal='.$i.'>'.$links[$i].'</option>";
echo "<option value='nothing' selected>'----------'</option>";
}
 
tag
Fehler gefunden

versuch mal
echo "<option value=?gal='".$i."'>'".$links[$i]."'</option>"; anstelle von
echo "<option value=?gal='.$i.'>'.$links[$i].'</option>";

du musst deinen Festen Text beenden, bevor du $links anfuegen darfst
eine weitere, unschoenere Variante waere auch, wenn du von deiner eigentlichen Version die Punkte einfach ganz weglaesst... sonst brauchst die die Anfuehrungszeichen...



"mein mustertext".$diesesdollarzeichenwirdmitpunktenverbunden."hier geht der normale Text weiter"
 
Zuletzt bearbeitet:
Beide Versionen sehen grausam aus, Aser.
PHP:
<?php
	foreach( $links as $key => $value ) {
		echo '<form name="Formular"><select size="1" name="Auswahl" onChange="Go(document.Formular.Auswahl.options[document.Formular.Auswahl.options.selectedIndex].value)" style="width:290px; background-color:#FFFFFF; font-family:Areal,sans-serif; font-size:9pt; color : blue">';
		echo '<option value="nothing" selected>----------</option>';
		echo '<option value="?gal='.$key.'">'.$value.'</option>';
		echo '<option value="nothing" selected>----------</option>';
	}

?>
Allerdings frage ich mich, wozu das Ganze soll, da pro Element des $links-Arrays ein neues Formular deklariert wird, das jedoch – genau wie das Auswahlelement – nicht geschlossen wird.
 
es sollen schon alle links in einem DD-Menu sitzen.
Aber ich hab vorher noch nie so ne "navi" in php erstellt, und hab daher auch leider keine ahnung.
 
@Gumbo
sorry
ok ich habe das zweite $vergessen gehabt (wurde grad editiert)
aber was ist an
echo "<option value=?gal='".$i."'>'".$links[$i]."'</option>";
grausam?:confused: :rolleyes:
 
Zurück