Leerzeilen bei Nicht-eingaben unterdrücken

hi,

ich habe ein eingabe formular mit drei eingabemöglichkeiten. ich will erreichen, daß wenn ich nur die erste und dritte ausfülle, die zweite zweile in der ausgabe völlig ignoriert wird. also keine leerzeile eingefügt wird.

ich hab mich schon doof gesucht, aber nichts gefunden.

eingabeformular:

Werbung

Zeile1

Zeile2

Zeile3

Ausgabe:

<?php echo "$_POST[zeile1]<br>";
echo "$\_POST[zeile2]
";
echo "$\_POST[zeile3]
";

?\>

Hallo Ticker,

wonach hast du denn gesucht? Was du erreichen möchtest ist eine Fall gesteuerte bearbeitung der eingaben. Sowas macht man unter anderem mit IF

if(!empty($\_POST['zeile2'])
{
 echo $\_POST['zeile2'];
}

Wenn der Array NICHT leer ist , wird der wert ausgegeben.
Das Ausrufezeichen negiert den Rückgabe wert von der Funktion empty()

hoffe es hilft.

wonach hast du denn gesucht?

ich hab erst mit != und == rumgespielt. vergeblich! dann habe ich auch nach if script gesucht und schliesslich habe ich auch was gefundenn zu „if (empty“ aber es hat nie geklappt.

nur leider klappt das auch nicht, was du mir netterweise geraten hast.

eingabe:

Werbung

Zeile1

Zeile2

Zeile3

ausgabe:

<?php if(!empty($_POST['zeile1'])<br />{
 echo $\_POST['zeile1'];
}
if(!empty($\_POST['zeile2'])
{
 echo $\_POST['zeile2'];
}
if(!empty($\_POST['zeile3'])
{
 echo $\_POST['zeile3'];
}

?\>

und bekam da ne fehlermeldung:

Parse error: syntax error, unexpected '{' in /home/vhosts/xxx/httpdocs/test\_ausgabe.php on line 4

Oh tut mir leid da ist eine klammer zu wenig

if(!empty($\_POST['zeile1']))
{
 echo $\_POST['zeile1'];
}

Oh tut mir leid da ist eine klammer zu wenig

das hätte mir auch auffallen können, sorry.

aber ich will ja nicht alles in einer zeile haben, sondern zeile(x) soll halt eine zeile belegen und nicht alles hintereinander weg in einer ziele ausgeben. klar könnte ich ein
pro zeile eingeben, aber dann würde wieder ein zeilenumbruch gemacht, obwohl nichts in zeile2 eingetragen ist.

ich kann das nicht so gut erklären. ich hoffe es ist einigermaßen verständlich.

hm falls ich dich richtig verstanden habe , weiss ich trotzdem nicht wo das problem liegt.

if(!empty($\_POST['zeile1']))
{
 echo $\_POST['zeile1'];
}

if(!empty($\_POST['zeile2']))
{
 echo '
'.$\_POST['zeile1'];
 // Ein unbruch wird also nur ausgegeben wenn zeile2 nicht leer ist
}

if(!empty($\_POST['zeile3']))
{
 echo '
'.$\_POST['zeile3'];
 // Ein unbruch wird also nur ausgegeben wenn zeile3 nicht leer ist
}

ist es das was du erreichen wolltest?
du kannst es auch beliebig verschachteln

if(!empty($\_POST['zeile3']))
{
 if(!empty($\_POST['zeile1']) OR !empty($\_POST['zeile2']))
 {
 echo '
';
 // nur ein umbruch falls zeile 1 ODER zeile 2 nicht leer sind
 }

 echo $\_POST['zeile3'];
}

Das sind alles grundlagen , vll. solltest du dir nochmal ein tutorial anschauen?
(code ist ungetestet)

hm falls ich dich richtig verstanden habe , weiss ich trotzdem
nicht wo das problem liegt.

if(!empty($_POST[‚zeile1‘]))
{
echo $_POST[‚zeile1‘];
}

if(!empty($_POST[‚zeile2‘]))
{
echo ’
'.$_POST[‚zeile1‘];
// Ein unbruch wird also nur ausgegeben wenn zeile2 nicht
leer ist
}

if(!empty($_POST[‚zeile3‘]))
{
echo ’
'.$_POST[‚zeile3‘];
// Ein unbruch wird also nur ausgegeben wenn zeile3 nicht
leer ist
}

ist es das was du erreichen wolltest?

JA, GENAU DAS!

Das sind alles grundlagen , vll. solltest du dir nochmal ein
tutorial anschauen?

ja, aber ich bin wohl nicht so ein guter programmierer. ich habe mir schon viele tutorials angesehen, aber die skripte waren für mich wahrscheinlich immer zu komplex. solch ein „hallo welt“ skript, wie du sie weiter oben mal geschrieben hast, hab ich nie gefunden.

nochmals danke

von der anderen Antwort abgesehen…
das hier ist doch um einiges einfacher, oder nicht?

Ausgabe:

<?php if ($_POST[zeile1] != "") echo "$_POST[zeile1]<br>";
if ($\_POST[zeile2] != "") echo "$\_POST[zeile2]
";
if ($\_POST[zeile3] != "") echo "$\_POST[zeile3]
";

?\>

alternativ wäre auch sowas hier möglich:

<?php $ausgabe = "$_POST[zeile1]
$\_POST[zeile2] $\_POST[zeile3] "; echo (str\_replace(" "," ",$ausgabe); ?\>

Hallo MunichFreak,

ich weiss nicht genau was das weglassen von klammern vereinfacht, es mag auf den ersten blick übersichtlicher aussehen.

außerdem entspricht dein Vorschlag nicht der Problematik das ein Umbruch ausgegeben wird obwohl es sein kann das zeile2 und zeile3 leer sind.

Ich bin aber auch nicht sonderlich auf eine Diskussion aus welcher Schreibstil jetzt hübscher ist ( ;

Hallo IndyK

ich weiss nicht genau was das weglassen von klammern
vereinfacht, es mag auf den ersten blick übersichtlicher
aussehen.

es ist einfach simpler als Dein Konstrukt - und so auch für Laien besser verständlich…
Die variable wird sowieso übergeben - manchmal aber leer - und dann soll kein
ausgegeben werden.
Wenn man die Variable gleich mit dem
zusammenhängt und bei leerlassen nicht ausgibt ist das einfacher als alles auszugeben und ggf. ein
mehr oder weniger zu machen…

außerdem entspricht dein Vorschlag nicht der Problematik das
ein Umbruch ausgegeben wird obwohl es sein kann das zeile2 und
zeile3 leer sind.

öhm… wer hatte die Problematik nicht verstanden?
Bei mir wird kein
ausgegeben, wenn die Variable leer ist ->.

bei

if($\_POST['zeile1'] != "") echo $\_POST['zeile1'].'
';

wird ein Umbruch ausgegeben, obwohl zu dem Zeitpunkt nicht feststeht ob nach zeile1 noch eine weitere zeile folgt. Falls dem nicht so ist, wäre dieser Umbruch ungewünscht.

*so habe ich es verstanden*

vielleicht sehe ich auch den wald nicht.

nö…
es ging nur darum, dass keine Leerzeile zwischendrin entsteht - sprich: Es sollen keine ZWEI
's hintereinander stehen.

Und sollte im Anschluss noch Text kommen, dann macht es auch Sinn, dass ein Zeilenumbruch hinter der Information steht.

das hier ist doch um einiges einfacher, oder nicht?

Ausgabe:

<?php :
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; ?\>

0,02€: es ist superhaesslich, fehleranfaellig, wirft notices und ich ersehne den tag an dem ein if ohne {} einen parser error schmeisst. genaugenommen ist es so schlimm, das ich es aus-x-en musste.