Eine Box aus PHP erzeugen

  • PHP

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von ereza.

    Eine Box aus PHP erzeugen

    Hi Leute,

    Ich habe folgendes Problem...

    Ich möchte gerne eine Box (so wie eine modal Box) erzeugen... aber NICHT durch HTML und Javascript sondern aus dem PHP heraus...

    Der Grund hierfür ist, der, weil diese Box nur dann erzeugt werden soll, wenn bestimmte Auswahlen aus einem Formular getroffen wurden... Und das wird im Grunde über eine andere PHP-Datai gesteuert, wo alle Funktionen und Abarbeitungsschritte drinnen sind...

    Also zur Verdeutlichung:
    Es gibt 2 Dateien:

    account_register.tpl
    und
    lib.account_register.php

    in account_register.tpl wird das Formular, dass der User ausfüllt aufgebaut - das ist im im Grunde alles HTML.... Die ganzen Hintergrundprozesse (einschließlich das Daten aus dem Formular rausholen, etc....) findet aber in der lib.account_register.php statt.

    So, ich habe nun einen IF-Then Zweig, bei dem ich bestimmte User-Eingaben prüfe... wenn diese getroffen wurden, dann wird dieser Zweig aktiv.

    Und jetzt gehts darum, dass ich in der lib.account_register.php gerne eine Box erschaffen möchte, wo ich eine Umfrage durchführe.
    Also:
    Es sollt eine Box entstehen die der User nicht wegklicken kann (also praktisch gezwungen ist auszufüllen) und dann werden dem User in dieser Box Fragen gestellt und der User hat immer verschiedene Antwortmöglichkeiten. Es handelt sich dabei aber um single choice - somit, möchte ich das über radiobuttons lösen.

    Ich weiß jz aber nicht wie ich das aus PHP raus realisieren kann :((
    PS: bin absoluter PHP-Anfänger...

    Was gut geht, wäre eine alert box... aber ich wüsste jz nicht wie ich die alert box dazu "missbrauchen" könnte, damit ich wirklich schön Radiobuttons etc. darstellen könnte... und diese auch ansprechen kann (also die eingegebenen bzw. ausgewählten Werte in Variablen speichern könnte um diese dann in eine Datenbank zu übertragen...)

    hättet ihr für mich einen Tipp, bzw. ein konzept wie ich das lösen kann??

    - wie gesagt... mir nützt eine html modal box mit Javascript im herkömlichen sinne hier nix...
    wenn müsste ich das über php erzeugen lassen können....
    oder gibts vielleicht die möglichkeit, dass man einen html-teil nützt oder so was...?? ich bin echt ratlos... ?(

    vielen dank schon mal!

    VG Tim
    aber das ist ja wieder im HTML Teil....

    das bringt mir leider nix...

    ich brauche praktisch die befehle, wie ich im PHP Code eine Box erzeugen kann.... in der ich dann content reinschreibe und radiobuttons einbaue....

    oder geht das vielleicht über php gar nicht?


    Nachtrag:


    Also bis jz habe ich mal die alert-box methode:

    PHP-Quellcode

    1. echo '<script language="javascript">';
    2. echo 'alert("Das ist ein Test!")';
    3. echo '</script>';


    Aber das ist mir zu wenig... weil ich eben ein komplettes formular haben möchte... wo ich text reinschreibe und radiobuttons habe, die ausgewählt werden müssen... und zum schluss möchte ich einen button haben... wenn man auf den klickt, möchte ich die daten überprüfen / in die DB schreiben usw....

    deshalb wird das so nicht gehen oder??

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ereza“ ()

    Javascript ist doch überhaupt nicht nötig.
    Auch das generieren des Html-code über echo, ist überflüssig.
    Inerhalb einer php Datei, kann Html ganz normal verwendet werden.

    PHP-Quellcode

    1. <!DOCTYPE html>
    2. <html>
    3. <meta name="viewport" content="width=device-width, initial-scale=1">
    4. <link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
    5. <?php $test = "test"; ?>
    6. <body class="w3-container">
    7. <h2>W3.CSS Modal</h2>
    8. <button onclick="document.getElementById('id01').style.display='block'" class="w3-btn">Open Modal</button>
    9. <div id="id01" class="w3-modal">
    10. <div class="w3-modal-content">
    11. <div class="w3-container">
    12. <span onclick="document.getElementById('id01').style.display='none'" class="w3-closebtn">&times;</span>
    13. <p><?php echo $test; ?></p>
    14. </div>
    15. </div>
    16. </div>
    17. </body>
    18. </html>

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pasta“ ()

    @Pasta:
    hmmm... nope... leider...

    das funzt bei mir nicht... da bekomme ich einen Synthax error...:

    Parse error: syntax error, unexpected '<' in

    es scheitert bereits in der zeile: <!DOCTYPE html> ?(

    @Rinecamo:
    Was hast du genau damit gemeint.... also... wie funktioniert das?


    @All:
    Also... das gibts doch nit... es wird doch bitte irgendwie möglich sein rein php-mäßig, eine Dialog box oder eine Art "Fenster" zu generieren in welchem man ein Formular hat....?? Oder, nochmals, kann PHP das selber nicht?? Ich mein, ich kenn mich leider viel zu wenig aus... aber das erscheint mir persönlich seltsam, wenn das echt nicht gehen sollte...


    Das ihr euch ein Bild darüber verschaffen könnt:

    PHP-Quellcode

    1. error_reporting(0);
    2. if ($UserTyp1 == '1' AND $Checkbox_UserTyp1 != '1' AND ( $Checkbox_UserTyp2 == '1' OR $Checkbox_UserTyp3 == '1'))
    3. {
    4. error_reporting(1);
    5. //------------------------------------------------
    6. // Register user
    7. //------------------------------------------------
    8. Checkup_IchBinUserTyp1_suche_UserTyp2OderUserTyp3($type_id, $index_type_id, $username, $password, $password_confirm, $email, $email_confirm, $photo, $tos, $captcha, $fields, $default_fields);
    9. if ($ERROR_KZ == NULL)
    10. {
    11. //echo "Alles OK!! - Weiter gehts... zum 2.ten Teil der Registrierung....!";
    12. //echo '<script language="javascript">';
    13. //echo 'alert("Das ist ein Test!")';
    14. //echo '</script>';
    15. <!DOCTYPE html>
    16. <html>
    17. <meta name="viewport" content="width=device-width, initial-scale=1">
    18. <link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
    19. <?php $test = "test"; ?>
    20. <body class="w3-container">
    21. <h2>W3.CSS Modal</h2>
    22. <button onclick="document.getElementById('id01').style.display='block'" class="w3-btn">Open Modal</button>
    23. <div id="id01" class="w3-modal">
    24. <div class="w3-modal-content">
    25. <div class="w3-container">
    26. <span onclick="document.getElementById('id01').style.display='none'" class="w3-closebtn">&times;</span>
    27. <p><?php echo $test; ?></p>
    28. </div>
    29. </div>
    30. </div>
    31. </body>
    32. </html>
    33. }
    34. elseif ($ERROR_KZ == '1')
    35. {
    36. }
    37. }


    ab Zeile 10 soll praktisch eine Box erzeugt werden... in der ich dann eben meine Fragen unt Antworten mit Radiobuttons stelle...

    und dann am schluss soll ein Button zum Absenden existieren...


    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ereza“ ()

    Das sollte einen Ansatz aufzeigen !
    Copy&Paste ohne zu verstehen, funktioniert in der Regel nicht ! ;)

    Wie ich aber sehe, fehlen dir die Grundlagen, die solltest du dir erst mal aneignen !
    Tip: php code muß von dem entsprechendem tag umschlossen sein !
    du meinst...

    <?php

    ?>

    ja... das ist mir schon klar...

    Ich sag ja... bin auch noch blutiger Anfänger in PHP... aber... ich bräuchte eigentlich nur diese Schlüsseinfo... dannn komm ich für das für das ichs brauche ausreichend weiter...

    Ich bin ja bereits im PHP-Code drinnen...

    heißt... den Ausschnitt den du gesehen hast... ist bereits im PHP-Code...
    Ich weiß schon was du meinst... du meinst, ich müsste nach dem abschluss Tag von PHP, also: ?> dann mit dem HTML Teil anfangen....
    ist mir schon klar...

    Aber eben das möchte ich nicht... Ich möchte in meinem PHP-Code Teil, in meinem IF-THEN Zweig, weiter programmieren und mittels PHP eine Box und Inhalt erzeugen...

    Das möchte ich.... weißt nun was ich meine? - ich weiß, ich drück mich vl. nicht klar aus... bzw. ist das was ich meine vielleicht a bissl unkonventionell... aber ich bräuchte genau dafür den Input...

    ereza schrieb:

    heißt... den Ausschnitt den du gesehen hast... ist bereits im PHP-Code...
    Ich weiß schon was du meinst... du meinst, ich müsste nach dem abschluss Tag von PHP, also: ?> dann mit dem HTML Teil anfangen....
    ist mir schon klar...

    Ich denke, daß dir das nicht ganz klar ist.

    PHP-Quellcode

    1. <?php
    2. // erledige php kram, z.B.:
    3. $test = "test";
    4. ?>
    5. <!DOCTYPE html>
    6. <html>
    7. <meta name="viewport" content="width=device-width, initial-scale=1">
    8. <link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
    9. <body class="w3-container">
    10. <h2>W3.CSS Modal</h2>
    11. <button onclick="document.getElementById('id01').style.display='block'" class="w3-btn">Open Modal</button>
    12. <div id="id01" class="w3-modal">
    13. <div class="w3-modal-content">
    14. <div class="w3-container">
    15. <span onclick="document.getElementById('id01').style.display='none'" class="w3-closebtn">&times;</span>
    16. <p><?php echo $test; ?></p>
    17. </div>
    18. </div>
    19. </div>
    20. </body>
    21. </html>
    22. <?php
    23. // erledigenoch mer php kram
    24. ?>

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pasta“ ()

    @ereza PHP kann so etwas nicht, PHP ist eine serverseitige Scriptsprache, das kann Clientseitig gar nichts.
    Du kannst mit PHP das nötige HTML/CSS(/JS) generieren, was dann an den Client ausgeliefert wird und vom Browser verarbeitet/angezeigt wird.

    Weitere Lektüre:
    PHP
    Client-server model
    HTML
    achso meint ihr das...

    da muss man a bissl anders rum denken.... so so.... ok... :D

    also wenn ich euch jz richtig verstehe... würde es am einfachsten gehen, wenn ich den zustand, den ich im IF-Zweig habe als trigger für den HTML teil benutze...

    hmm... ok...

    Ja DANKE für die erklärung Pasta & slice... dann probier ich mal basteln... ;)
    ich versteh nur bahnhof, was meinst du mit Trigger in dem if-Zweig?

    Wär mir neu, dass es (rein logisch gesehen) Events in PHP gibt...

    Das ist aber einfachstes PHP und die Tatsache, dass du zwar HTML-Text in eine PHP-Datei schreiben kannst dies aber getrennt vom PHP-Code schreiben musst, gehört dazu.

    Die Grundlagen von PHP sind nicht schwer und sehr leicht zu erlernen.

    Und wenn du schon echo benutzt, dann schreib das doch bitte als einen String den du mit '+' über mehrere Zeilen verbindest. Bei einzelnen Sätzen würde ich auch nicht echo sonder print_r() benuten, da du hier noch einen Zeilenumbruch dazu bekommst.
    Ich meine folgendes...

    Wenn die gewünschte Bedingung von meinem if - Zweig erfüllt ist... weise ich einer "trigger-variable" zb. Den Wert 1 zu...

    Dann nach dem php teil... Mach ich einen HTML teil... der aber dynamisch sein muss...

    Also brauch ich einen Javascript teil der aktiv wird wenn meine trigger-variable 1 ist...

    Und damit wird der HTML teil erzeugt...

    Oder?? So müsste das dann doch gehen...?

    Könnt ihr mir einen Tipp geben wo ich nachschauen kann wie ich mit Javascript ein modal erzeugen kann wenn eine bestimmte Bedingung erfüllt ist... und sonst soll nix erzeugt werden. ..
    Gäbe es da einen guten link wo so eine Thematik behandelt wird?

    Danke!!

    VG Tim
    Ich würde das ohne Javascript realisieren, weil Javascript eben Clientseitig ist.
    Was machst du, wenn der Anwender Javascript deaktiviert hat, ausschließen, mit "Bitte aktiviere Javascript" Meldungen belästigen ?
    Dein Vorhaben kann auch mit php gelöst werden.
    Hallo Pasta!

    Naja... aber wie soll ich denn ein bedingtes HTML erzeugen??

    Weil... ich will ja nur durch ein Merkmal. .. einen Zustand eine Box erzeugen. ..

    Und in HTML gibt's kein if then. ..

    Wie soll ich dann also ein bedingtes HTML über Php erzeugen? ?

    Soweit ich weiß kann ich dynamische HTMLs nur mit Javascript realisieren. .. oder?

    Oder ginge das in php dass ich sage erzeuge mir ein modal mit einem Formular, wenn triggervariable = 1 und wenn triggervariable <>1 tu gar nix und mach mir kein HTML. .? ?

    ereza schrieb:

    Und in HTML gibt's kein if then. ..
    Mit Hilfe von PHP geht das natürlich. ;) Das kann man ja auch direkt in den HTML-Code inkludieren. Das wird auch bei vielen Template-Systemen so angewandt, u.a. auch von PHP-Frameworks.

    php.net/manual/en/language.control-structures.php
    php.net/manual/en/control-structures.alternative-syntax.php

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hmmm ok... dann mal folgende Idee. ..

    Geht in php sowas? : modal erzeugen. ..

    var modal = document.getElementById('myModal');

    function() {
    modal.style.display ="block";
    }

    Quelle:

    w3schools.com/howto/howto_css_modals.asp


    Oder ist die Syntax in php anderst?


    Nachtrag...

    Ich brings einfach nicht zusammen... :((
    Könnt ihr mir bitte helfen?

    Ich weiß einfach nicht wie ich das schreiben muss, dass ich eine Modalbox erzeuge, wenn

    PHP-Quellcode

    1. if ($Moeglichkeit_1 == 1)
    erfüllt ist...

    Wie muss denn das aussehen, vom Code her?




    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ereza“ ()

    Angenommen du hast eine HTML Datei die deine Box beeinhaltet und so aussieht:

    HTML-Quellcode

    1. <form>
    2. <p>Geben Sie Ihre Zahlungsweise an:</p>
    3. <fieldset>
    4. <input type="radio" id="mc" name="Zahlmethode" value="Mastercard">
    5. <label for="mc"> Mastercard</label><br>
    6. <input type="radio" id="vi" name="Zahlmethode" value="Visa">
    7. <label for="vi"> Visa</label><br>
    8. <input type="radio" id="ae" name="Zahlmethode" value="AmericanExpress">
    9. <label for="ae"> American Express</label>
    10. </fieldset>
    11. </form>
    12. <!-- Schamlos von SelfHTML kopiert, ich weiß. Quelle: https://wiki.selfhtml.org/wiki/HTML/Formulare/input/Radio-Buttons_und_Checkboxen -->

    Die Form kannst du dann natürlich noch mit CSS stylen, aber das ist erstmal nicht weiter wichtig.

    Jetzt gehst du in deinen PHP Teil zu der Stelle, an der du die Überprüfung machst:

    PHP-Quellcode

    1. if ($Moeglichkeit_1 == 1) {
    2. echo readfile("/pfad/zu/deiner/html/datei/mit/der/box.html");
    3. }

    readfile() ließt den Inhalt der Datei und echo gibt ihn wieder aus. Damit fügst du den Inhalt der HTML Datei, also die Box, in dein Dokument ein.

    Grüße
    Väinämö
    vielen Dank, Vainamo V!!

    So kann ich zumindest mal die Weiche stellen... dass haut schon mal hin soweit...

    Aber ich schaffe es nicht das ganze in einer Box darzustellen....

    Habe jz mal folgendes...:

    PHP-Quellcode

    1. if ($Moeglichkeit_1 == 1)
    2. {
    3. echo readfile("http://localhost/projekt/befragung.php");
    4. }


    So.. und die befragung.php ist so aufgebaut...:

    PHP-Quellcode

    1. <html>
    2. <h1 align="center"><b><u>Schritt 2 von 2:</u></b></h1>
    3. <link rel="stylesheet" type="text/css" href="https://localhost/projekt/befragung.css">
    4. <form action="befragung.php">
    5. <input type="hidden" name="Senden" value="yes">
    6. <h1> Frage 1: </h1>
    7. <p> blabla Text 1... </p>
    8. <input type="radio" name="antwort_für_frage_1" value=-10>Antwort 1<br>
    9. <input type="radio" name="antwort_für_frage_1" value=1 >Antwort 2<br>
    10. <input type="radio" name="antwort_für_frage_1" value=1>Antwort 3<br>
    11. <input type="radio" name="antwort_für_frage_1" value=-20>Antwort 4<br>
    12. <br>
    13. <br>
    14. <input type="submit">
    15. </form>
    16. </html>
    17. <?php
    18. // Turn off error reporting
    19. error_reporting(0);
    20. $Senden = $_GET['Senden']; //Weichensteller
    21. $antwort_für_frage_1 = $_GET['antwort_für_frage_1']; //antwort der radiobox...
    22. $A2_1 = $_GET['A2_1']; //Wert von Antwort 1 von Frage 2 bekommen...
    23. $A2_2 = $_GET['A2_2']; //Wert von Antwort 2 von Frage 2 bekommen...
    24. $A2_3 = $_GET['A2_3']; //Wert von Antwort 3 von Frage 2 bekommen...
    25. $A2_4 = $_GET['A2_4']; //Wert von Antwort 4 von Frage 2 bekommen...
    26. $antwort_für_frage_2 = $A2_1 + $A2_2 + $A2_3 + $A2_4;
    27. if ($Senden == 'yes') {
    28. echo '<h1>Es wurde f&uuml;r Frage 1:</h1><p>&nbsp;'.$antwort_für_frage_1.'&nbsp;ausgew&auml;lt!</p>';
    29. //$antwort_für_frage_2_text = implode(', ',$antwort_für_frage_2);
    30. echo '<h1>Es wurde f&uuml;r Frage 2:</h1><p>&nbsp;'.$antwort_für_frage_2.'&nbsp;ausgew&auml;lt!</p>';
    31. }
    32. ?>


    Aber wie bekomme ich das ganze nun in eine Box?? weil... so wird mir das einfach am Anfang der dargestellten Seite, hingeschrieben und NICHT separat in einer scrollbaren Box, die "über" der Seite liegt... ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ereza“ ()

    Zum einen:
    Du hast eine .php-Datei, und keine HTML-Datei. Das hättest du erwähnen müssen. Die sauberere Methode wäre hier, include() zu benutzen, statt echo readfile().

    Zum zweiten:
    Du kannst daraus ganz einfach eine andere Box machen, mit CSS. Ersetze in der befragung.php den <html>-Tag durch ein <div class="modal-box">. Dann kannst du in der CSS der Haupt-PHP-Datei (also die, in der du die befragung.php lädst) eine Regel für div.modal-box {} hinzufügen und deine Box so anpassen, wie du es gerne hättest.

    Dü könntest sie zum Beispiel mittig platzieren, in dem du folgende Regeln anwendest:

    Quellcode

    1. position: absolute;
    2. top: 50%;
    3. left: 50%;
    4. transform: translate3d(-50%, -50%, 0);
    5. -webkit-transform: translate3d(-50%, -50%, 0);


    Edit: Wenn du es mit dem Stylen so gar nicht hinbekommst, kannst du mir per PN deine Seite schicken, dann mache ich dir schnell ein CSS dafür.

    Grüße
    Väinämö