if-Abfrage wird einfach ignoriert

multimolti

Erfahrenes Mitglied
Hallo!

Ich ärger mich schon seit längerem mit dem Karten-Script für mein Browsergame rum, bisher hatte die Ausgabe Probleme, der Quelltext schien zu lang zu sein. Habe das jetzt gelöst, indem ich anstatt den <img>-Tags ein Style mache, aber jetzt wird einfach gar nichts ausgegeben!

Hier der Code:
PHP:
while(...)
{
				...
				echo '<td style="';
				echo ($belegt ? 'Map1' : 'Map0');
				echo '" onClick="bauplz(\''.$data['ID'].'\')">'."&nbsp;";
				echo '</td>';
}
Nachdem das nicht klappte, weil ich als Ausgabe immer nur das hier erhielt:
HTML:
<td style="" onclick="bauplz('')">&nbsp;</td>
Habe ich diesen PHP Code anstatt der Umschreibung mit $belegt ? bla : blubb genommen:
PHP:
				if($belegt)
					echo 'Map1';
				else
					echo 'Map0';
				echo '" onClick="bauplz(\''.$data['ID'].'\')">'."&nbsp;";
Aber es tritt immer noch das gleiche Problem auf! Ich kann mir das nicht erklären, mein Code zwingt den Parser doch, entweder das eine oder das andere auszugeben!!
 
Hi,

wie wäre es denn mit:

PHP:
if($belegt == 'Map1') {
                    echo 'Map1'; 
               }
                else { 
                    echo 'Map0'; 
                    }
echo ......

Mit eckigen Klammern sehen die Befehle einfach besser aus! ;)


Beste Grüße,
preko
 
Hallo!
Das was du vorgeschlagen hast, geht leider nicht, denn 1. die Variable $belegt ist ein boolean, aber egal.
2. mache ich das normalerweise auch mit den geschweiften Klammern, nur hier eben für Testversuche mal so.
Und 3. habe ich das Problem jetzt gelöst, ich hatte die Ausgabe der PHP-Datei per Ajax in mein Hauptprojekt geladen, und das blöde Ajax hatte anscheinend irgendwas in der Richtung von HTML-Validierung gemacht, und den Inhalt des style-Attributs überschrieben (das mit dem style war auch falsch, sollte eigentlich class sein).

Naja, jetzt habe ich es wieder auf einen anderen Weg gemacht, das mit dem CSS sollte nur eine Aushilfe sein, weil mein blöder Apache Quelltext, der größer als 20kb ist, nicht mehr ausliefert, und mit CSS war das kürzer.

Trotzdem Danke für die Hilfsversuche!
 
Nein, es würde NICHT klappen, weil $belegt NIEMALS den Wert "Map1" annehmen kann!

Es ist ein boolean, kann also nur true oder false annehmen, und wenn es true ist kann es einfach mit if($belegt) die if-Bedingung erfüllen. Ich könnte auch if($belegt = true) machen, aber mit if($belegt = 'Map1') würde es IMMER false liefern und somit die else-Aufgabe ausgeführt werden.

Die Abfrage if(isset($belegt)) würde IMMER true zurückliefern, denn $belegt wird ja vorher mit true oder false belegt, also ist das auch nicht nützlich, und if(empty($belegt)) würde IMMER false zurückliefern (aus dem gleichen Grund)!
 
Und was hindert dich daran aus der Variable $belegt einen string zu machen.? Wenn die Variable $belegt nicht richtig zugewiesen wird eben die IF immer nur ein Ergebniss liefern.

Mfg Splasch
 
1. weil ich die Variable als boolean brauche, und 2. weil die if auch nur ein Ergebnis liefern soll! Ist das so schwer zu verstehen? Das Problem hat sich doch sowieso schon erledigt, es war einfach das blöde Ajax, was mir die Zuweisung in der HTML-Ausgabe wieder gelöscht hat.
Und wie man eine PHP-if-Abfrage macht weiß ich natürlich!

Damit ist dieses Thema beendet -.-
 
Zurück