Mit PHP CSS-Eigenschaften ändern möglich?

Wozu gibst du denn beide Infotexte aus, wenn dann sowieso nur einer dargestellt wird?

Wenn der User noch keine Auswahl getroffen hat, wird keine der beiden Info-Texte angezeigt und je nach Auswahl des Users (mit anschließendem Absenden des Formulars) wird einer der beiden Info-Texte angezeigt. Es werden somit nie!! beide Texte ausgegeben :eek:

Mein Lösungsweg hat wunderbar funktioniert, eine schön dynamische Geschichte ohne Ladezeiten bzw. Seitenwechsel.

Damit wird das Thema geschlossen (erledigt)
 
Dein Eingangsbeitrag sagt aber etwas anderes:
Die beiden Info-Bereiche sind im "Grundzustand" mittels CSS auf 'display:none'. Um das jeweilige Info-Fenster einzublenden, reicht es die Eigenschaft auf 'display:block' zu ändern.
Beide Texte werden ausgegeben aber nur einer von beiden oder keiner soll dargestellt werden.
 
Das, was Gumbo wohl meint, ist...wozu gibst du etwas aus, was du nicht zeigen willst?
Wenn etwas "display:none" hat..dann wird es nicht angezeigt.... und da du auf JS verzichten willst, wird es auch nie angezeigt werden.... warum also gibst du es überhaupt aus :confused:
 
Hallo!
Sven Mintel hat gesagt.:
Das, was Gumbo wohl meint, ist...wozu gibst du etwas aus, was du nicht zeigen willst?
Den Sinn verstehe ich auch nicht.
Denn display:none verhindert ja nur die Darstellung im Browser..... im Quelltext stehen die <div>-Elemente trotzdem.
Bei z.b. einem Frage-/Antwortspiel würde es also nicht besonders gut kommen. ;)

Statt dessen könnte man es z.b. so machen:
PHP:
<?php error_reporting(E_ALL); ?>
<html>
<head>
<title>DIV-Box</title>
<style type="text/css">
     .show { display: block; }
</style>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
     <input type="checkbox" name="box1"> Box 1<br>
     <input type="checkbox" name="box2"> Box 2<br>
     <input type="checkbox" name="box3"> Box 3<br>
     <input type="submit" value="DIV-Box anzeigen">
</form>
<?php
if(isset($_POST['box1'])) {
echo '
<div class="show">
     Inhalt der 1. DIV-Box.
</div>
';
}
 
if(isset($_POST['box2'])) {
echo '
<div class="show">
     Inhalt der 2. DIV-Box.
</div>
';
}
 
if(isset($_POST['box3'])) {
echo '
<div class="show">
     Inhalt der 3. DIV-Box.
</div>
';
}
?>
</body>
</html>
Gruss Dr Dau
 
Das, was Gumbo wohl meint, ist...wozu gibst du etwas aus, was du nicht zeigen willst?
Wenn etwas "display:none" hat..dann wird es nicht angezeigt.... und da du auf JS verzichten willst, wird es auch nie angezeigt werden.... warum also gibst du es überhaupt aus

Wie bereits oben geschrieben, gibt es eine Auswahl auf die Frage: "Sind Sie bereits Kunde?" -> Ja / Nein (als Radiobutton)

Zu Beginn sind beide Info-Blöcke auf display: none und werden somit nicht angezeigt, dass es im Quelltext steht, stört (mich) nicht weiter.
Je nach Auswahl des Users wird ein Info-Block angezeigt(2 Stück: Info-Block auf die Antwort 'Ja' || Info-Block auf die Antwort 'Nein').


und da du auf JS verzichten willst, wird es auch nie angezeigt werden....

Doch je nach Auswahl des Users wird es nun eingeblendet und kann bei Bedarf (bei einer Falschauswahl des Users) erneut ausgeblendet werden. Wobei immer ein Info-Block vorhanden ist, nachdem der User einmal das Formular abgesendet hat, da dann die
$_POST['auswahl_des_radiobuttons'] den Wert 'ja' oder 'nein' trägt und damit das entsprechende Info-Fenster eingeblendet wird.


@Dr Dau:

Die Lösung ist natürlich auch möglich, aber nicht besonders elegant in meinem Fall, da ich die beiden Info-Blöcke auch wieder ausblenden möchte (wenn der User eine Falschauswahl korrigieren möchte),
z.B.

Grundzustand (kein Radiobutton gewählt) --> kein Info-Block

- Ja --> Info-Block1 wird eingeblendet.. nun merkt der User, dass er doch kein Kunde ist und somit keine Daten sich einzuloggen (der Login-Teil) wird auch eingeblendet

nun betätigt er den Radiobutton Nein und schickt das Formular erneut ab.
- Nein --> Info-Block1 wird ausgblendet und InfoBlock2 eingeblendet, desweitern wird der Login-Teil ausgeblendet und an dessen Stelle erscheint ein Formular, in dem sich der Neukunde erst registriern muss (Name, Vorname, Strasse,....etc.).

(das ganze kann man sich natürlich auch umgekehrt vorstellen, erst Nein, dann Ja,... oder doch dann wieder Ja.. :-) )

Grüsse
 
Rexo hat gesagt.:
Doch je nach Auswahl des Users wird es nun eingeblendet und kann bei Bedarf (bei einer Falschauswahl des Users) erneut ausgeblendet werden.

Und wie blendest du es dann ein, wenn du kein JS verwendest... doch wohl nur, indem du das Formular sendest...und dann wird die Seite neu geladen...und dann hat es vorher keinen Sinn gemacht, das ausgeblendete <div> ins Dokument zu schreiben.

nachdem der User einmal das Formular abgesendet hat
eben....du schickst das Formular ab...das bedeutet, die Seite wird neu geladen :-)
 
eben....du schickst das Formular ab...das bedeutet, die Seite wird neu geladen

durch das Absenden des Formulars (method="post" action="") weise ich nur einen Wert zu, die Seite wird nicht! neu geladen.

Ist im Grunde das gleiche, wenn du nur ein input-Feld hast, in das ne Zahl eingegeben wird und weiter unten das ganze mit echo ausgegeben wird.

~~ edit ~~
Eben hab ich bemerkt, dass das Favicon kurz aufblinkt -> Zeichen für ein Reload der Seite..hmm
--> stimmt Seite wird neu geladen! (aber da die so klein ist (kb)) scheint, es als ob diese nicht neu geladen wird.. man erkennt es nur am kurzen Blinken des Fav-Icon.. nagut damit kann ich leben ;)
 
Zuletzt bearbeitet:
Ergo: die Ausgabe des versteckten Elementes ist überflüssig...oder meinst du nicht ?

Jupp (hab nicht bedacht / bemerkt, dass er die Seite neu lädt)

PS: Da kommt ne kleine Frage auf:
Angenommen ich hab ne if-Schlaufe und im else Teil steht seitenweise Code, aber die Pürfung der Bedingung ergibt, dass derr if-Teil zutrifft und damit nicht der else Teil.

Wird der else-Teil dann auch "durchgeschaut" bzw. geparst?
 
Naja...angucken tut sich PHP das schon...merkt man bspw. wenn man dort einen Parse-Error platziert, der wird ja trotzdem moniert :-)
 
Zurück