Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: php-Zeile - Bereich für weitere HTML-Parameter konfusiert mich

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Hallo,

    ich habe hier ein Textfeld mit php geschrieben, welches vorbelegt ist und wenn ich dafür den Code verwende, bei dem ich denke, dass er korrekt sein würde, kommt als Ergebnis etwas Nicht-Erwünschtes heraus, nämlich dass vor dem vorbelegten Textfeld noch ein > auftaucht. Dieser Code lautet wie folgt:

    Code: PHP  [Auswählen]
    $smarty->assign('COMMENTS', xtc_draw_textarea_field('comments', '', '', '', 'f55ff', "<div style=\"border:4px gray ridge;\"</div>", isset($_SESSION['comments']) ? $_SESSION['comments'] : '') . xtc_draw_hidden_field('comments_added', 'YES'));

    Wenn ich es nun "falsch" schreibe, funktioniert es, wie ich es gern hätte. Nämlich wie folgt:

    Code: PHP  [Auswählen]
    $smarty->assign('COMMENTS', xtc_draw_textarea_field('comments', '', '', '', 'f55ff', "<div style=\"border:4px gray ridge;\"</div", isset($_SESSION['comments']) ? $_SESSION['comments'] : '') . xtc_draw_hidden_field('comments_added', 'YES'));

    Könnte mir jemand erklären, wo mein Denkfehler liegt?

    Danke!

    MFG
    Nils

    Linkback: https://www.modified-shop.org/forum/index.php?topic=33325.0

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Den schließenden div-Tag schreibst du korrekt so </div>
    Aber den öffnenden schreibst du ohne abschließendes >

    Da ich den Code drum herum nicht kenne, bin mir nicht sicher ob es daran liegt. Müßte doch dann so sein.

    Code: PHP  [Auswählen]
    $smarty->assign('COMMENTS', xtc_draw_textarea_field('comments', '', '', '', 'f55ff', "<div style=\"border:4px gray ridge;\"></div>", isset($_SESSION['comments']) ? $_SESSION['comments'] : '') . xtc_draw_hidden_field('comments_added', 'YES'));

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Vielen Dank Gulliver72!!

    Es hat zwar auf die mir unverständliche Art auch funktioniert. Aber es ist wesentlich schöner, wenn man Code hat, der macht, was er soll. Und außerdem hab ich nun was Wesentliches dazugelernt.

    MFG
    Nils

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Wenn du jetzt erst dazugelernt hast, deinen Code korrekt zu schreiben, verstehe ich langsam deine "Fragewut"  :lol1:    :ironie:

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Ja, aber bisher habe ich dann auf Änderungen in den Quelldateien verzichtet. Ich habs auf jeden Fall nicht einfach auf gut glück versucht.

    MFG
    Nils

    P.S. Die Taste meiner Tastatur für die geschweifte Klammer ist defekt  :’-(

    Edit: Hab mich leider zu früh gefreut. Wenn ich die von dir gepostete Codezeile verwende, dann ich das Textfeld nicht wie gewünscht und erwartet mit
    Zitat
    f55ff
    sondern mit
    Zitat
    </div>>f55ff
    vorbelegt.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    "Fragewut"

    Das Wort passt gut. :rofl: Mir fällt auf Anhieb kein User ein, der so viele Threads erstellt hat. :D

    Ich will mal sagen, es spricht auf jeden für Nils, dass er so viel ausprobiert, hinterfragt und tut. Es gibt hier ja auch User, von denen hört man nie was, aber im Abgreifen von Modulen, Code-Alternativen und Fertiglösungen sind sie die Größten.

    Zum Thema:

    Es fehlt beim öffnendem DIV-Tag wirklich das ">". Das muss definitiv noch da hin. Ich verstehe aber nicht, wie dieses Zeichen dann hinter dem schließenden DIV-Tag auftauchen kann.

    Da stellt sich wirklich die Frage, welcher Code noch in der Ausgabe dazu kommt. Vielleicht ist da ein ">" zu viel?

    Fakrae

    • Viel Schreiber
    • Beiträge: 997
    Ähm... Oder versuch mal das:
    Code: PHP  [Auswählen]
    $smarty->assign('COMMENTS', xtc_draw_textarea_field('comments', '', '', '', 'f55ff', "style=\"border:4px gray ridge;\"", isset($_SESSION['comments']) ? $_SESSION['comments'] : '') . xtc_draw_hidden_field('comments_added', 'YES'));

    Wenn man sich die Quellcode-Datei anschaut, steht da:
    Code: PHP  [Auswählen]
    if (xtc_not_null($parameters)) $field .= ' ' . $parameters;

        $field .= '>';
    Das ist also der Grund für dein zusätzliches ">"

    Die zusätzlichen html-Parameter die laut Doku möglich sind, beinhalten aufgrund der Implementierung keine eigenen Tags (div oder andere)

    Wenn du unbedingt das "div" brauchst, dann musst du es so probieren, ist aber recht hässlich und gibt dir Probleme, wenn tatsächlich vom Nutzer daten eingegeben werden (denn das div wird dann nie geschlossen und ist damit eigentlich nicht valide):
    Code: PHP  [Auswählen]
    $smarty->assign('COMMENTS', xtc_draw_textarea_field('comments', '', '', '', 'f55ff</div>', "><div style=\"border:4px gray ridge;\"", isset($_SESSION['comments']) ? $_SESSION['comments'] : '') . xtc_draw_hidden_field('comments_added', 'YES'));
    6 Antworten
    4390 Aufrufe
    20. März 2011, 01:16:26 von Tomcraft
    8 Antworten
    5315 Aufrufe
    07. August 2010, 12:44:19 von techpoint
    3 Antworten
    3012 Aufrufe
    04. April 2011, 10:01:09 von h4r4ld