cpt-planet: Text ausrichten ??

Hallo,

ich habe da immer noch ein Problem. Ein PHP Kurzbefehl, welcher mir die Daten, die aus einem vorherigen Formular übergeben wurden auswertet, passt mir noch nicht so ganz.
Vielleicht kann mir einer von Euch weiterhelfen.

Also das Formular "formular.htm" beinhaltet Formularobjekte (Textfelder), diese werden durch <form name="form1" method="post" action="input.php"> an wie man schon sehen kann an "input.php" übergeben.

In dieser Datei befindet sich der Befehl :

<?
foreach($HTTP_POST_VARS as $k => $v) {
echo "$k: $v <br>";
echo "<input type="hidden" name="$k" value="$v">";
}
?>

Die Ausgabe eines nun ausgefülten Formulares sieht dann so aus :

Vorname: Andreas
Nachname: Mustermann
Email: 33333 Musterstadt
Nachricht: 011111 80000

Ich möchte aber das es so aussieht :

Vorname  : Andreas
Nachname : Mustermann
Email    : 33333 Musterstadt
Nachricht: 011111 80000

Was mache ich falsch ??

cu
cpt-planet

  1. Hallo,

    Tach,

    In dieser Datei befindet sich der Befehl :

    <?
    foreach($HTTP_POST_VARS as $k => $v) {
    echo "$k: $v <br>";
    echo "<input type="hidden" name="$k" value="$v">";
    }
    ?>

    Die Ausgabe eines nun ausgefülten Formulares sieht dann so aus :

    Vorname: Andreas
    Nachname: Mustermann
    Email: 33333 Musterstadt
    Nachricht: 011111 80000

    Ich möchte aber das es so aussieht :
    Vorname  : Andreas
    Nachname : Mustermann
    Email    : 33333 Musterstadt
    Nachricht: 011111 80000

    Was mache ich falsch ??

    Du erwartest, daß der Browser errät, wie Du Deine Ausgaben formatiert haben willst. Das darf er aber noch nichtmal, selbst wenn er wollte, denn in HTML gibt es Regeln, wie vorhandener Code darzustellen ist.

    Wenn Du das ganze tabellarisch haben willst, könntest Du eine Tabelle verwenden.

    Oder die ganze Ausgabe in ein pre-Element packen und dann die einzelnen Strings "von Hand" mit Leerzeichen auf die richtige Länge auffüllen.

    Andreas

  2. hi

    Was mache ich falsch ??

    Also eigendlich garnichts:-)

    es passiert genau das was du angibst:

    echo "$k: $v <br>";
    echo "name:LEERSTELLEwert"

    und das bei jeden durchlauf. du müsstest schon innerhalb eines schleifendurchlaufes filtern wie lang der String ist der in variable $k ist.

    geht mit strlen($k).
    gibt eine zahl zurück und je nach dem, wie groß diese Zahl-> dementsprechend viele Leerstellen müssen ausgegeben werden.
    z.b.:
     echo "$k:";
     $anzahl = strlen($k);
     for ($i = $anzahl; $i < 20;$i++)
     {
         echo " ";
     }
     echo "$v<BR>";

    dies füllt füllt jeden Key mit leerstellen bis dieser die Zwanzig erreicht. Die Zwanzig müsstest du noch ersetzten durch die Anzahl der Zeichen deines Längsten Strings (in deinen fall: Nachricht (9zeichen))

    grüße

  3. Hi,

    Die Frage ist eine reine HTML-Sache. An der Stelle  echo "$k: $v <br>" mußt Du dafür sorgen, daß die $k genau 9 Zeichen hat. Du mußt die Länge der jeweiligen $k Variable prüfen und dann, wenn diese kleiner ist als 9 entsprechede Anzahl von   hintereinander anfügen! (Also normale Leerzeichen würden nicht helfen, denn HTML ignoriert diese und schreibt nur einen einzigen Abstand).
    Gruß,
    Samir

    Hallo,

    ich habe da immer noch ein Problem. Ein PHP Kurzbefehl, welcher mir die Daten, die aus einem vorherigen Formular übergeben wurden auswertet, passt mir noch nicht so ganz.
    Vielleicht kann mir einer von Euch weiterhelfen.

    Also das Formular "formular.htm" beinhaltet Formularobjekte (Textfelder), diese werden durch <form name="form1" method="post" action="input.php"> an wie man schon sehen kann an "input.php" übergeben.

    In dieser Datei befindet sich der Befehl :

    <?
    foreach($HTTP_POST_VARS as $k => $v) {
    echo "$k: $v <br>";
    echo "<input type="hidden" name="$k" value="$v">";
    }
    ?>

    Die Ausgabe eines nun ausgefülten Formulares sieht dann so aus :

    Vorname: Andreas
    Nachname: Mustermann
    Email: 33333 Musterstadt
    Nachricht: 011111 80000

    Ich möchte aber das es so aussieht :

    Vorname  : Andreas
    Nachname : Mustermann
    Email    : 33333 Musterstadt
    Nachricht: 011111 80000

    Was mache ich falsch ??

    cu
    cpt-planet

    1. Danke für Eure Antworten, sie haben zu einer brauchbaren Lösung beigetragen.

      cu
      cpt-planet