Auswahlbox umwandeln

merpil

Grünschnabel
Hallo Liebe tutorials Community,

ich bin seit ein paar Monaten dabei PHP zu lernen. Auch wenn ich gute fortschritte mache, stehe ich nun auf die nächste herausforderung: Es gibt in eine PHP Datei eine Auswahlbox, der je nach auswahl eine andere Seite lädt:
PHP:
 <form name="form2" method="post" action="<?=$PHP_SELF?>">
        <select class="catlist" name="category" onChange="this.form.submit()">
          <? 	  
	  if (!isset($category)) $category=0;
	  for ($i=0; $i<$numcat; $i++){
	  		if ($i==$category)	
	  			echo "<option value='$i' selected>$cat[$i]</option>";
			else
				echo "<option value='$i'>$cat[$i]</option>";
	  }
	  ?>
        </select>
      </form>

Meine Frage ist, gibt es auch eine methode diese Select box durch normale link <a href .. zu ersetzen?

Vielen dank
 
Ja klar, du könntest eben eine Linkliste machen, aber um den Listenstyle benötigst du CSS und vielleicht auch JavaScript.
Wieso willst du denn das machen, vielleicht gibt es andere Lösungen.
 
Danke für deine schnelle Antwort ComFreek. Es werden durch die Anfrage ca. 8 Kategorienamen von der Datenbank geholt und dieser Auswahlboc dient als Navigation. Da aber keine andere menü punkte gibt sieht das halt (Design-technisch) blöd aus mit nur eine einzige Auswahlbox als navigationsmenü.
Eine Ausgabe mit Listenstyle ( <ul><li> ) wäre Perfekt
 
Wenn du das aber gerne so machen möchtest wie es dir vorschwebt, also mti den Auswahlboxen, dann kannst du das folgendermaßen realisieren:
PHP:
// Hier wird geprüft ob der Button ausm Formular gedrückt wurde
if(isset($_POST['submit'])) {  
// Zusätzliches Überprüfen ob überhaupt was ausgewählt wurde
    if($_POST['category'] != "" AND isset($seite[$_POST['category']])) { 
        // Mittels dieser Zeile wird automatisch ein neues Laden zur gewünschten Seite aktiviert 
        echo "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=".$seite[$_POST['category']]."\">\n";
    } else {
        echo "Fehleingabe!";
    }
} else {
    // Zeigt die Formular mit der Auswahlbox und einem Submitbutton an.
}
Du solltest natürlich irgendwo die Variable $seite definiert haben, so kannst du direkt steuern welche Seite aufgerufen wird.

Hoffe das hilft

Edit: Ich glaube aber auch das ein Menü, wie z.B. bei Facebook wenn man auf Konto klickt, das eben auch aufpopt, die schönere Variante ist
 
Zuletzt bearbeitet:
Danke Just-klick, Danke Timestamp,

also so wie Timestamp vorgeschlagen hat funktioniert die Darstellung zwar aber das Link kann ich nicht herausfinden. In der Seite wird, egal welchen Kategorie man wählt, bleibt der URL adresse immer http://www.xyz.com/index.php, es wird also nicht gezeigt welche URL bei einzelnen Kategorien oder Seiten aufgerufen werden. Somit habe ich das Problem die <a href ... tag zu ersetzen. Hier der gesammt php Datei:

PHP:
<? 
if (!$empty){ ?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>



<div><span style="margin-left:50%;"><? echo $records[$showid]['name']?></span></div>
    <? if (isset($do)){?><p><? echo $records[$lastitem]['name']?></p><? }?>
 <div class="left" id="left">
		<? if (!$thisbadvote){?>
		<form name="form1" method="post" action="<?=$PHP_SELF?>">
		<input type="radio" name="rate" value="10" onClick="this.form.submit()">10
		<input type="radio" name="rate" value="9" onClick="this.form.submit()">9
		<input type="radio" name="rate" value="8" onClick="this.form.submit()">8
		<input type="radio" name="rate" value="7" onClick="this.form.submit()">7
		<input type="radio" name="rate" value="6" onClick="this.form.submit()">6
		<input type="radio" name="rate" value="5" onClick="this.form.submit()">5
		<input type="radio" name="rate" value="4" onClick="this.form.submit()">4
		<input type="radio" name="rate" value="3" onClick="this.form.submit()">3
		<input name="rate" type="radio" onClick="this.form.submit()" value="2">2
		<input name="rate" type="radio"  onClick="this.form.submit()" value="1">1 
		<input name="id" type="hidden" id="id" value="<? echo $records[$showid]['id'];?>">
		<input name="lastitem" type="hidden" id="lastitem" value="<? echo $showid;?>">
		<input name="do" type="hidden" id="do" value="vote">
		<input name="category" type="hidden" id="category" value="<? echo $category;?>">
		</form>
		<? }else echo "<div class='err'>Du hast heute bereits gevotet!</div><br>";?>
        <br /><br />
		<? if ($numrows==1) echo "$numrows Bilder "; else echo "$numrows Bilder";?><br>
      in dieser Kategorie<br><br>  
	 
</div>
	  <? if ($addpic){?>
	
	 <? }?>
	
   
	<?
	$imgsize=GetImageSize($records[$showid]['path']); 	
	if ($imgsize[0]>$maxpicwidth){										
		$width=$maxpicwidth;
		$height=$maxpicwidth*($imgsize[1]/$imgsize[0]);
	}else{
		$width=$imgsize[0];
		$height=$imgsize[1];
	}	

	?>
     <div class="bild">
		<img src='<?=$records[$showid]['path']?>' width="<? echo $width;?>" height="<? echo $height;?>">
      	
       <div align="right">  <form name="form3" method="post" action="<?=$PHP_SELF?>">
		  <input type="image" src="images/naechst.png" class="button" name="next" id="next" value="n&auml;chstes">
		  <input name="do" type="hidden" id="do" value="vote">
		  <input name="lastitem" type="hidden" id="lastitem" value="<? echo $showid;?>">
		  <input name="category" type="hidden" id="category" value="<? echo $category;?>"> 
		  <input name="action" type="hidden" id="action" value="skip"> 
		  <input name="id" type="hidden" id="id" value="<? echo $records[$showid]['id'];?>">    
      </form>      
</div>
  
	  <? if ($showcomments){ 						// if comment feature is turned on
	  
  			$sql="SELECT name, comment FROM $dbtable_comments WHERE item=".$records[$showid]['id']." ORDER BY time DESC";
			if ($res=mysql_query($sql, $db)){
				$rows=mysql_num_rows($res);
				if ($showall=="yes") $numcomments =  $rows;
				if ($rows > 0){				  
					?>			
					<br>
                              <? if($numcomments<$rows){?>
                                	<a href="<? echo "$PHP_SELF?category=$category&showall=yes&forceid=".$records[$showid]['id']; if ($lastitem) echo "&lastitem=$lastitem&do=vote";?>"><font color="<?=$td_caption_txt?>">show all</font></a>                                                           </form>
                               <? }?>
                          
						<div class="votingsmalltxt" style="height: 60px; overflow: auto; scrollbar-track-color: $td_odd; scrollbar-base-color: $td_odd">
						<? 
						$i=1;
						while ($row=mysql_fetch_array($res)){
							if ($i>$numcomments) break;
							echo "<b><i>".$row['name'].":</i></b> ".$row['comment']."<br>";			
							$i++;				
						}				
						?>
						</div>
					<?
				}
	 		mysql_free_result($res);
	 		}
		}
			
	?>
	
    </div>
    
	<? if (isset($do)){?>
		<strong>
			<?
			if (isset($lastitem)){
				$imgsize=GetImageSize($records[$lastitem]['path']);
			?><img src='<?=$records[$lastitem]['path']?>' width="100" height="<? echo 100*($imgsize[1]/$imgsize[0]); ?>"><br />
			Durchschnitt: <span class="rating"><? echo round($records[$lastitem]['avg'], 1);?></span>
			<? if (isset($rate) && !$badvote) echo "<br> Deine Stimme: $rate";?>
			<br>
			Stimmen: <? echo $records[$lastitem]['votes'];?>
			<? }?>
			<br>
			<? if (!$errormsg=="") echo "<br><span class='err'>$errormsg</span>";?>
	</strong> 
	    <? }?>


<? }else{  // if empty?>

<font color="<? echo $td_caption_txt;?>">Voting</font>
    <? if (isset($do)){?>
    <? }?>
  
      <br>
      <ul>
          <? 	  
	  if (!isset($category)) $category=0;
	  for ($i=0; $i<$numcat; $i++){
	  		if ($i==$category)	
	  			echo "<li><a href='$PHP_SELF/$cat[$i]'>$cat[$i]</a></li>";
			else
				echo "<li><a href='$PHP_SELF/$cat[$i]'>$cat[$i]</a></li>";
	  }
	  ?>
      </ul>
      
      <? if ($numrows==1) echo "$numrows Eintrag"; else echo "$numrows Eintr&auml;ge";?>
      <br>
      in dieser Kategorie<br>
      <br>
      <br>
	  <? if ($addpic){?>
		<form name="form4" method="post" action="<?=$PHP_SELF?>">
        <input class="button" name="addpic" type="submit" id="addpic" value="Bild hinzuf&uuml;gen">
        <input name="do" type="hidden" id="do" value="add">
      </form>
	  <? }?>
      <form name="form5" method="post" action="<?=$PHP_SELF?>">
        <input class="button" name="submit" type="submit" id="submit" value="Admin Panel">
        <input name="do" type="hidden" id="do" value="admin">
        <input name="action" type="hidden" id="action" value="show">
      </form></td>
    <? if (isset($do)){?>
    <? }?>
 
<? }?>

und das sind die Variablen von der Config PHP

PHP:
// environment variables
if (isset($_REQUEST['id'])) 				$id=$_REQUEST['id'];
if (isset($_REQUEST['rate'])) 				$rate=$_REQUEST['rate'];
if (isset($_REQUEST['lastitem'])) 			$lastitem=$_REQUEST['lastitem'];
if (isset($_REQUEST['do'])) 				$do=$_REQUEST['do'];
if (isset($_REQUEST['category'])) 			$category=$_REQUEST['category'];
if (isset($_REQUEST['action'])) 			$action=$_REQUEST['action'];
if (isset($_REQUEST['forceid'])) 			$forceid=$_REQUEST['forceid'];
if (isset($_REQUEST['showall'])) 			$showall=$_REQUEST['showall'];
if (isset($_REQUEST['newname'])) 			$newname=$_REQUEST['newname'];
if (isset($_REQUEST['newcontact'])) 		$newcontact=$_REQUEST['newcontact'];
if (isset($_REQUEST['newpwd'])) 			$newpwd=$_REQUEST['newpwd'];
if (isset($_REQUEST['newpic'])) 			$newpic=$_REQUEST['newpic'];
if (isset($_REQUEST['newcat'])) 			$newcat=$_REQUEST['newcat'];
if (isset($_REQUEST['newpath'])) 			$newpath=$_REQUEST['newpath'];
if (isset($_REQUEST['password'])) 			$password=$_REQUEST['password'];
if (isset($_REQUEST['picture'])) 			$picture=$_REQUEST['picture'];
if (isset($_REQUEST['name'])) 				$name=$_REQUEST['name'];
if (isset($_REQUEST['comment'])) 			$comment=$_REQUEST['comment'];
if (isset($_REQUEST['comments'])) 			$comments=$_REQUEST['comments'];
if (isset($_REQUEST['item'])) 				$item=$_REQUEST['item'];
if (isset($_REQUEST['approve']))	 		$approve=$_REQUEST['approve'];
if (isset($_REQUEST['todelete'])) 			$todelete=$_REQUEST['todelete'];
if (isset($_REQUEST['numrows']))	 		$numrows=$_REQUEST['numrows'];
if (isset($_REQUEST['login'])) 				$login=$_REQUEST['login'];
if (isset($_REQUEST['pwd'])) 				$pwd=$_REQUEST['pwd'];
if (isset($_REQUEST['from'])) 				$from=$_REQUEST['from'];

$PHP_SELF=$_SERVER['PHP_SELF'];
$me=$_SERVER['PHP_SELF'];
$SCRIPT_FILENAME=$_SERVER['SCRIPT_FILENAME'];

Gibt es den eine möglichkeit herauszufinden welche URL aufgerufen wird?

Danke
 
Tut mir leid, dein Code ist mir grad etwas zu lang und unübersichtlich um jetzt komplett durchzusteigen, aber hast du bei Form action vllt. noch $_SERVER['PHP_SELF'] stehen, so das beim Abschicken immer das gleiche Script aufgerufen wird. Ich hoffe ich red jetzt nicht an dir vorbei :).

Ansonsten wenn du URL herausfinden möchtest:
$_SERVER-Variablen sind dein Freund
Einfach $_SERVER['PHP_SELF']
 
Zurück