Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] (DRINGEND!) HTML-Code in HTML mit PHP ausgeben (echo)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] (DRINGEND!) HTML-Code in HTML mit PHP ausgeben (echo)

    Hallo zusammen,

    ich habe ein dringendes Problem, der Abgabetermin meiner Abschlussarbeit rückt näher und ich verzweifle an einem wahrscheinlich einfachem Problem.

    Nachdem ich lange gesucht habe, hab ich beschlossen die PHP-Gemeinde zu fragen und eventuell nach Hilfe bzw. Tipps zu bitten.

    PHP-Code:

    //Anzahl der C-Module (Anzahl Zeilen der Tabelle) in Variable übergeben
    $anzahl_module=$_SESSION['anzahl_module'];
    $i=$anzahl_module;
    $ende=$i+10;

    //wenn Button 'weitere Module einfügen' betätigt
    if(isset($_SESSION['weitere_module']))
    {
        
    //wenn Anzahl der C-Module kleiner 500 (Anzahl der Zeilen der Tabelle kleiner 500)
        
    if ($_SESSION['anzahl_module']<500) {
            
    // 10 mal durchlaufen
            
    for ($i=$i+1$i<=$ende;) {
                
    //HIER IST MEIN PROBLEM!!!!!
                
    echo "<td class="tg-031e"colspan="2"><select id=".$i".name=".$i".size="1">";




            }

        }

    Ich habe meinen Fehler bereits eingegrenzt und weiß in welcher Zeile er ist.
    Leider komm ich aber nicht weiter, es handelt sich wahrscheinlich um einen Syntax-Fehler.

    Drum bitte ich euch um Hilfe, wie kann ich PHP-Variablen korrekt im HTML-Code einbinden und anschließend über echo ausgeben?

    Vielen Dank im voraus!

    Gruß
    Cino


  • #2
    PHP-Code:
    echo "<td class=\"tg-031e\" colspan=\"2\"><select id=".$i." name=".$i." size=\"1\">"
    ..ist eine Möglichkeit das zu schreiben.

    10x durchlaufen so:

    PHP-Code:
    for($i=1;$i<=10;$i++){


    mfg wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      schau mal, was rund um $i nicht stimmen könnte. Ausserdem verwendest du für die Ausgabe in PHP sowie für die HTML-Attribute die selben Quotes. Das kann nicht funktionieren

      PHP-Code:
       echo '<td class="tg-031e" colspan="2"><select id="'.$i.'" name="'.$i.'" size="1">'
      .

      Kommentar


      • #4
        Dann noch: gütige ID und NAMEN in html

        ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters,
        digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

        Dein HTML welches du erzeugst sollte valid sein.
        PHP-Klassen auf github

        Kommentar


        • #5
          Vielen Dank

          Hallo nochmals,

          vielen Dank an alle, dass ihr so schnell geantwortet habt.

          Ich habe es so umgesetzt wie wolf29 es geschrieben hat und es funktioniert auch soweit, nur würde ich auch gerne wissen, wann man diese backslash's verwenden muss. Kannst mir es jemand vielleicht kurz erläutern oder einen Link schicken wo ich es nachlesen kann.

          Ich danke euch nochmals

          Gruß
          Cino

          Kommentar


          • #6
            http://de.wikipedia.org/wiki/Maskierungszeichen
            http://php.net/manual/en/regexp.reference.escape.php
            .

            Kommentar


            • #7
              einen Link schicken wo ich es nachlesen kann
              PHP-Doku -> Strings: http://php.net/manual/de/language.types.string.php

              Weiter unten:

              Double quoted

              If the string is enclosed in double-quotes ("), PHP will interpret more escape sequences for special characters:
              ...
              As in single quoted strings, escaping any other character will result in the backslash being printed too. ...
              By the Way:

              Zitat von Threadtitel
              (DRINGEND!) HTML-Code in HTML mit PHP ausgeben (echo)
              http://www.php.de/php-einsteiger/464...tml#post408048

              Bitte beachten, danke!

              LG
              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Danke für die links die ihr mir geschickt habt, hab es mir angeguckt und soweit auch verstanden.

                ABER...

                ...dann bin ich auf dieses Problem gestoßen...

                PHP-Code:
                echo "<td class=\"tg-031e\" style=\"background-color:#c0c0c0;\"><input style=\"background-color:#c0c0c0;\" id="fp.$i" name="fp.$i" type=\"text\" size=\"4\" value=\"\" maxlength=\"3\"></td>"
                Hab das ganze soweit maskiert (neues Wort gelernt ), komm nur nicht mit der ID und dem Namen klar, wie ich es da machen muss.

                Könnt ihr mir vielleicht weiterhelfen..

                Vielen Dank und Gruß
                Cino

                Kommentar


                • #9
                  Weil fp vor die Quotes gehört

                  PHP-Code:
                  " ... id=fp".$i." name=fp".$i." ... " 
                  Übrigens fehlten noch die HTML " .. " bei den beiden fp Werten. Ich find es einfacher HTML-Strings in ' ' zu fassen, dann kannst du das " als normales Zeichen verwenden, sparst dir das escapen und ist auch einfacher zu lesen - meine Meinung und Geschmäcker sind ja verschieden.

                  PHP-Code:
                  echo
                  '<td class="tg-031e" style="background-color:#c0c0c0;"> 
                    <input style="background-color:#c0c0c0;" id="fp'
                  .$i.'" name="fp'.$i.'" type="text" size="4" value="" maxlength="3"> 
                  </td>'

                  Und im HTML-Quelltext siehst du dann den produzieren HTML-Quelltext und kannst schauen ob der syntktisch korrekt ist, schadet bei komplexeren oft nie.

                  Alternative, siehe auch printf(), sprintf(), ist für komplexerer Strings oft praktisch!

                  PHP-Code:
                  printf(
                      
                  '<td class="tg-031e" style="background-color:#c0c0c0;"> 
                        <input style="background-color:#c0c0c0;" id="fp%s" name="fp%s" type="text" size="4" value="" maxlength="3"> 
                      </td>'
                  ,
                      
                  $i$i
                  ); 
                  Hier wird jeweils das %s zu deinem Inhalt von $i ersetzt.

                  LG
                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    hallo hausl,

                    vielen Dank für die schnelle Antwort, ich denke ich werde es so wie du es empfohlen hast umsetzen, da man sich wie du bereits gesagt hast die Maskierungszeichen erspart und das ganze leserlicher ist.

                    Vielen Dank nochmals

                    Falls ich im Laufe des Tages auf keine weiteren Probleme diesbezüglich stoßen werde, werde ich im Laufe des Tages diesen Thread als erledigt kennzeichnen.

                    Danke und Gruß
                    Cino

                    Kommentar


                    • #11
                      Habs oben nochmals überarbeitet, schau auch das Beispiel mit printf(), gerade wenn du einen längeren HTML-String hast und mehr Vars zum ersetzen wirds damit ein Stück einfacher.
                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar

                      Lädt...
                      X