PHP Farbumschaltung per CSS und PHP

DanielSan!

Cadet 2nd Year
Registriert
Mai 2009
Beiträge
20
Hallo und Guten Morgen,

habe folgendes Problem:
Und zwar möchte bzw. muss ich ein kleines Spiel programmieren. Dieses Spiel hat 12 Spielfelder, diese sind per <div> definiert. "Über" diesen liegen noch zwei <divs>, die das erste <div> einfach in der Mitte teilen, dass hat den Hintergrund das ein <div> Team Rot gehört, das andere <div> Team Blau. Nun möchte ich per Klick auf eines dieser zwei <divs> eine Farbumschaltung machen. Klickt man auf das <div> für Team Rot, so soll sich dieses Rot färben, das gleiche bei dem <div> von Team Blau, dieses soll sich blau färben. Alles schön und gut, nur währenddessen werden aus einer Datenbank Fragen ausgelesen. Die Kategorie der Fragen gebe ich per $_GET an das Script weiter, das klappt auch alles gut.
Nun hatte ich es so probiert, dass ich auch per $_GET[teamrot] und $_GET[teamblau] auch zu übergeben, je nachdem auf welches Feld man klickt. So würde z.b so eine URL rauskommen:

frage.php?go=&kat=zeichnen&teamrot=1&teamblau=1

In den <divs> steht folgender Code:

PHP:
             <div id="feld3blau">
             <?php
             $pfad = $_SERVER['PHP_SELF'];          
                              
             echo "<a href=\"$pfad?go=$_GET[go]&kat=$_GET[kat]&teamrot=$_GET[teamrot]&teamblau=$_GET[teamblau]\"></a>\n";
             $_GET[teamblau] = 3;
             ?>
            </div>

Das klappt aber nicht so wie ich will, denn er holt sich die Variablen per $_GET nicht, da sie ja immer überschrieben werden mit $_GET[teamblau] = 3;.
Ich hoffe ihr versteht mein Problem, kann das irgendwie nicht besser beschreiben.
Danke für eure Hilfe
DanielSan
 
muss man nicht $_GET['teamblau'] schreiben? also in '...'! "..." gehen auch
So wie oben bei $_SERVER
 
sry ich kann aus deinem text nach drei maligem durchlesen noch nicht ganz verstehen was du willst^^

aber warum verwendest bei du der umgestaltung nicht einen booleanschen wert in dem du einmal teamredset=false oder true setzt setzt umgekehrt?

dann noch <div id="<? if($_GET['teamredset'] == 'true'){echo "feld3blau"}else{...}?>"
 
Wie gesagt, irgendwie ist das schwer zu erklären. Also nochmal:
EIn Spielfeld mit 12 Feldern, jedes Feld hat zwei darüber liegende divs, eins für Teamrot, eins für Teamblau. Nun soll per Klick auf Teamrot das Feld, auf das geklickt wurde, sich Rot einfärben. Das gleiche soll auch bei Teamblau passieren, sodass man immer sieht auf welchem Spielfeld sich das jeweilige Team befindet.
Nun wollte ich das so lösen, dass, wenn man auf ein div klickt die Variable $_GET[teamblau] = 1 für Feld 1, $_GET[teamblau] = 2 für Feld 2 usw. gesetzt wird. Den Inhalt des divs hatte ich ja schon gepostet. Nun steht ja in der URL z.b

frage.php?go=&kat=zeichnen&teamrot=4&teamblau=2

Das bedeutet, das Teamrot auf Feld 4 s teht, und Teamblau auf Feld 2, also Feld 4 Rot eingefärbt, Feld 2 Blau eingefärbt.
Das macht er aber nicht, da er sich die Variablen nicht "merkt". Das heißt klicke ich nun auf Feld 1 für Teamrot, so wird Teamblau auch verschoben. Hier liegt mein Problem, er soll nur Teamrot verschieben. Ich hoffe das ist verständlicher, falls nicht muss ich mir irgendeine andere Lösung überlegen.
Gruß
DanielSan
 
warum benutzt du nicht einfach javascript, wäre denke ich einfacher als alles immer in der url mitzuschleifen ^^

document.getElementById('feld1').style ...
 
Das mit Javascript habe ich auch schon probiert, aber leider muss während des Spiel öfters die Kategorie gewechselt werden, d.h. die Seite wird neu geladen und somit setzen sich die Feldfarben auch wieder zurück, deshalb würde ich das gerne per PHP und CSS machen, ich dachte halt das würde irgendwie gehen, da man ja die Werte mit GET übergeben kann.
Gruß DanielSan
 
kanns sein dast du den wert des teams das NICHT verschoben wird als hidden feld zwischenspeichern musst? ganz blick ich auch ned durch^^
 
Wie soll ich das mit dem "hidden" field lösen? Es wird doch kein Formular o.ä. übergeben?
Gruß
DanielSan
 
ok ich versuche das ganze zu verstehen :D

ich würds mal allgemein so anschreiben, schau dir das mal durch, hoffe ich hab keinen fehler reinbepratzt

PHP:
<?php


for($id = 0; $id <= 12; $id++){
	echo '<div';	
	if($_GET['teamrot'] == $id){echo 'id="rotesfeld"';}
	if($_GET['teamblau'] == $id){echo 'id="blauesfeld"';}else{echo "id=\"$id\"";)	
	echo'><div>'
}

?>
 
Bei deinem Problem kann ich dir leider nicht helfen, möchte dich aber freundlich darauf hinweisen, dass du das kaufmännische Und (&) in einem URI maskieren musst.

Beispiel: <a href="http://example.org/index.php?&amp;team=blue">Text</a>

:)
 
Zurück
Oben