Reloadproblem bei Zufallsgenerator

Admi

Erfahrenes Mitglied
Nun, ich habe ein kleines Script geschrieben, das nach Auswahl eines Spielmodus (1on1 bis 4on4) und darauf folgendem Click auf den Submitbutton "Zufallskarte generieren" eine Zufallskarte zum gewählten Modus ausgibt.

Folgendes Problem:

Wenn ich einen Modus auswähle und eine Karte generiere, dann zwitscht das Auswahlmenu wieder auf die erste Möglichkeit (1on1) zurück.
Wie kann ich es anstellen, das es auf dem vorher gewählten Modi bleibt und man so immer wieder neu generieren kann? Denn es ist noch die Auswahl gespeichert. Im Auswahlmenu steht dann zwar "1on1", aber wenn man auf Browserreload klickt, dann wird trotzdem die Karte zum vorher gewählten Modus generiert.

PHP:
   <title>Dawn of War - Zufallskartengenerator</title>
   <link rel="stylesheet" type="text/css" href="style.css" />
   <h2>Dawn of War - Zufallskartengenerator</h2>
   <form action="<?PHP echo $PHP_SELF; ?>" method="post">
   <select name="modi">
   	  <option value=1>1on1</option>
   	  <option value=2>2on2</option>
   	  <option value=3>3on3</option>
   	  <option value=4>4on4</option>
   </select> 
   Spielmodus ausw&auml;hlen
   <br>
   <br>
   <input type="submit" value="Zufallskarte generieren">
   </form>
   <?
   $_POST["modi"];
   $modi =  $_POST["modi"];
 $one = array("Sumpfgebiete","Blutfluss","Das Flusstal","Gefallene Stadt","Zusammenkunft","Randgebiete","Bahnhof","Verfluchtes Land","Tal des Khorne");
 $two = array("Biffys Wagnis","Der Bergpass","Quatra","Heiliges Quadrat","Verfluchter Ort","Verdorbene Seele","Zentrum des Tartarus","Der Vulkan");
   $three = array("Die Allee des Blutvergießens","Kreuzweg","Kasyo Lutien","Mortalis","Testgelände","Straßen von Vogen");
   $four = array("Die Gräber","Daturias","Vorhof zur Hölle","Letzte Hoffnung","Penal-Kolonie");
   $zufall1 = rand(0,8);
   $zufall2 = rand(0,7);
   $zufall3 = rand(0,5);
   $zufall4 = rand(0,5);
   if($modi == "1")
   	{
   	echo $one[$zufall1];
   	}
   	elseif($modi == "2")
   	{
   	echo $two[$zufall2];
   	}
   	elseif($modi == "3")
   	{
   	echo $three[$zufall3];
   	}
   	elseif($modi == "4")
   	{
   	echo $four[$zufall4];
   	}
   ?>
 
Zuletzt bearbeitet:
Hi, dazu fügst du oben bei den ganzen <option>-tags einfach noch einen kleinen php-zusatz hinzu:

PHP:
<title>Dawn of War - Zufallskartengenerator</title>
   <link rel="stylesheet" type="text/css" href="style.css" />
   <h2>Dawn of War - Zufallskartengenerator</h2>
   <form action="<?PHP echo $PHP_SELF; ?>" method="post">
   <select name="modi">
         <option value="1"<?=(($_POST['modi'] == 1) ? " selected":"")?>>1on1</option>
         <option value="2"<?=(($_POST['modi'] == 2) ? " selected":"")?>>2on2</option>
         <option value="3"<?=(($_POST['modi'] == 3) ? " selected":"")?>>3on3</option>
         <option value="4"<?=(($_POST['modi'] == 4) ? " selected":"")?>>4on4</option>
   </select> 
   Spielmodus ausw&auml;hlen
   <br>
   <br>
   <input type="submit" value="Zufallskarte generieren">
   </form>
   <?
   $_POST["modi"];
   $modi =  $_POST["modi"];
$one = array("Sumpfgebiete","Blutfluss","Das Flusstal","Gefallene Stadt","Zusammenkunft","Randgebiete","Bahnhof","Verfluchtes Land","Tal des Khorne");
$two = array("Biffys Wagnis","Der Bergpass","Quatra","Heiliges Quadrat","Verfluchter Ort","Verdorbene Seele","Zentrum des Tartarus","Der Vulkan");
   $three = array("Die Allee des Blutvergießens","Kreuzweg","Kasyo Lutien","Mortalis","Testgelände","Straßen von Vogen");
   $four = array("Die Gräber","Daturias","Vorhof zur Hölle","Letzte Hoffnung","Penal-Kolonie");
   $zufall1 = rand(0,8);
   $zufall2 = rand(0,7);
   $zufall3 = rand(0,5);
   $zufall4 = rand(0,5);
   if($modi == "1")
       {
       echo $one[$zufall1];
       }
       elseif($modi == "2")
       {
       echo $two[$zufall2];
       }
       elseif($modi == "3")
       {
       echo $three[$zufall3];
       }
       elseif($modi == "4")
       {
       echo $four[$zufall4];
       }
   ?>

Zur Erklärung:
PHP:
<?=(($_POST['modi'] == 1) ? " selected":"")?>

Das ist eine verkürzte schreibweise für den folgenden code:
PHP:
<?php
if($_POST['modi'] == 1) echo " selected";
else echo "";
?>

Den habe ich dann in jedes <option>-Tag eingebaut mit dem entsprechenden value.

Cu Paraman
 
Thx. wunderprächtig und noch was dazugelernt :) Bin erst am Anfang. Da nehme ich immer zwecks nachvollziehen die volle Schreibweise, da ich mit Kurzformen noch nicht klarkomme.
Kommt Zeit kommt Rat...auch das wird noch :D
 
Zurück