Anzeigeproblem von div mit Hilfe von PHP

Headymaster

Erfahrenes Mitglied
Hallo,

und zwar habe ich auf meiner login seite ne kleine Abfrage, ob ein fehler existiert, je nachdem ob oder ob nicht lasse ich nen div anzeigen, in dem die Fehlernachrichten stehen.

Hier mal ein Bissle Code:
HTML:
<div id="Head">
 Login
</div>
<div id="Content">
<?php if (isset($this->errors)) : ?>
 <div class="FormError">
  <?php
  foreach ($this->errors as $error) {
      echo $error.'<br>';
  }
  ?>
 </div>
<?php endif; ?>
 <table>
 <form action="index.php?cmd=Login" method="POST">
  <colgroup>
   <col width=50%>
   <col>
  </colgroup>
  <tbody>
   <tr>
    <td><b>eMail: </b></td><td><input type="text" name="email" value="<?php echo $this->login['email']; ?>"></td>
   </tr>
   <tr>
    <td><b>Passwort: </b></td><td><input type="password" name="password" value=""></td>
   </tr>
   <tr>
    <td></td><td><input type="submit" name="submit" value="Einloggen"></td>
   </tr>
  </tbody>
 </form>
 </table>
</div>

Also das Problem ist, das egal ob $this->errors etwas enthält oder nicht, das div nicht angezeigt wird.....
Zwischendurch kriege ich auch mal nen Javascript-Fehler (Obwohl es überhaupt kein Javascript gibt ein meiner Application) mit irgendwas von nsSession.js was im Firefox Verzeichnis ist.....

Würde mich wirklich über Hilfe freuen :)

MFG Nilson
 
Hi,

<?php if (isset($this->errors)) : ?>
:
:
<?php endif; ?>

Ist das irgendeine gültige Syntaxvariante, die ich noch nicht kenne?

Versuch's mal so:

PHP:
<?php 
if (isset($this->errors)) {
   echo "<div class=\"FormError\">\n";
   foreach ($this->errors as $error) {
      echo $error.'<br>';
   }
   echo "</div>\n";
}
?>

Ansonsten mach mal ein var_dump von $this->errors.

EDIT: Ach ja: taucht das DIV denn im Response auf?

LG
 
Zuletzt bearbeitet:
1. Ja es ist eine gültige Syntax^^
2. var_dump habe ich gemacht und liefert bei keinem error null und bei einem error halt ein array
3. ne der div-container ist nicht im Response....

MFG Nilson
 
Hi,

folgender Code funktioniert bei mir tadellos:

PHP:
<?php
$var = array("hallo", "Du");
?>
<html>
      <head>
      </head>
      <body>
      <?php if(isset($var)) : ?>
	 <div>
	    <?php
	    foreach($var as $value) {
	       echo $value . " ";
	    }
	    ?>
	 </div>
      <?php endif; ?>
      </body>
</html>

Verschweigst Du uns irgendwas? :)

LG
 
Ist der Div samt Fehlermeldungen im Quelltext?
Wenn ja schau nach ob du ihn nicht irgendwie auf display: none in deinen Stylesheets gesetzt hast.
 
Hmm jop also aud display: none habe ich es natürlich nicht gestellt...wäre ja dämlich....

Verwende im mom ne eigene View-Klasse....diese kann durch eine Methode Templates in das gesamtLayout rendern....

Die Templates sehen wie obiges aus und sind php-dateien.... (will es noch irgendwann mal auf phtml umstellen^^) ..... naja und gerendert werden die Dateien so:

PHP:
ob_start();
$filename = $this->path.'/'.$this->template.'.php';
require_once($filename);
$data = ob_get_clean();
return $data;

Vielleicht macht das ja auch Probleme obwohl sonst alles gut arbeitet bisher...

MFG Nilson
 
Genau im Template....weil ich wollte ja wissen ob es da gesetzt ist...und ich habe es unter der isset abfrage gemacht....weil sonst würde er ja net mehr weiterparsen ;-)

MFG Nilson
 
Zurück