Zeilenumbruch
Redaktionelle Einordnung
Diese archivierte Diskussion behandelt Zeilenumbruch aus Sicht der Rubrik PHP & MySQL.
CMS- und Technikfragen sind heute besonders dann relevant, wenn sie Indexierung, Rendering, interne Verlinkung oder Relaunch-Risiken beeinflussen.
Sinnvoll nutzbar bleibt der Thread vor allem als historischer Kontext, für typische Fragestellungen und zur Einordnung älterer Empfehlungen.
Einige im historischen Thread genannte Tools, Dienste oder externe Links könnten heute nicht mehr verfügbar oder inhaltlich überholt sein. Nutzen Sie sie bitte nur mit zusätzlicher Prüfung.
Startbeitrag
Originaler Foreninhalt in modernisierter Darstellung.
Hallo zusammen!
Das FF und IE Befehle verschieden interpretieren ist für mich ja auch nichts neues mehr.
Aber warum der IE bei der einen Sache einen (größeren) Zeilenumbruch einfügt als bei der anderen, obwohl die Befehle gleich sind, das raff ich nich.
Vor allem nicht, wie ich das wegbekomme.
Und zwar habe ich hier unter Angebot, wie man unschwer erkennen kann, einen Zeilenumbruch, der größer ist als bei allen anderen Feldern.
Aber es gibt im Code keinen Unterschied. Oder ich wurschtele da schon zu lange dran rum, das ich ihn nicht sehe.
Das ist der Code für das Angebots-Feld
<form action="rehakurssuche.php" method="post" accept-charset="utf-8">
<select name="searchterm" size="1" class="textfeld">
<?php
//Angebot auslesen
$sqlbefehl ="
Select distinct
Angebot
From
reha
ORDER BY
Angebot
";
$erg_cats = mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
while($cat = mysql_fetch_assoc($erg_cats)){
echo '<option value="'.$cat['Angebot'].'">'.$cat['Angebot'].'</option>';
}
?>
</select>
<input type = "submit" value="Suchen">
<input type = "reset" value="Abbrechen">
</form>
und im Vergleich dazu der Codeabschnitt für den Ort: <select name="searchterm" size="1" class="textfeld">
<?php
//Tage auslesen
$sqlbefehl ="
Select distinct
Tage
From
reha
ORDER BY
Tage
";
$erg_cats = mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
while($cat = mysql_fetch_assoc($erg_cats)){
echo '<option value="'.$cat['Tage'].'">'.$cat['Tage'].'</option>';
}
?>
</select>
<input type = "submit" value="Suchen">
<input type = "reset" value="Abbrechen">
</form>
Kann da jemand den Fehler finden und mich schlauer machen??
Danke im voraus!
Marcus
Antworten
7 BeiträgeHi Marcus,
es liegt an den Leerzeichen und Zeilenumbrüchen. Der IE reserviert für diese etwas Platz und da die beim ersten select nicht mit in die Zeile passen werden sie in die Zeile drunter verschoben.
Lösch einfach die Leerzeichen und Zeilenumbrüche raus oder mach die erste select box kleiner.
Gruß Thomas
PS: Drück im IE mal STRG + A dann siehst du was ich meine.
Hallo Marcus
Und die Seite wird im Chrome auch noch anders dargestellt.
Darf ich mal fragen ob das so gewollt ist das für jedes Feld eine Suche durchgeführt wird ohne das in Beziehung zu den anderen Abfragen steht?
Abgesehen davon das ich mit anderen HTML Elementen die Seite aufbauen würde und auch mehr CSS anwenden würde.
Gruß
Jörg
Hallo zusammen!
Danke Euch beiden erst einmal für die Hinweise.
@joerg:
Naja, gewollt ist relativ. Einerseits schon. Andererseits ist das mein erstes wirklich größeres Projekt, was ich gebaut habe - im wahrsten Wortsinne.
Oder noch direkter gesagt: Mein erstes wirkliches Projekt!
Das soll jetzt nicht evtl. Fehler beschönigen, aber vielleicht erklären.
Und beim Rehasport sind ja auch nicht so viele Angebote, das man die einzelnen Abfrage-Felder in Abhängigkeit stellen bräuchte - wie ich denke. Bei dem Sportprogramm wäre das vielleicht schon etwas anders.
Die Idee ist erst vor eineinhalb Wochen entstanden. Und da heute mein letzter Tag bei dem Sportverein war, hat natürlich auch die Zeit etwas gedrungen.
Ich will da zwar noch soweit wie möglich die Dinge verbessern, aber das grobe musste halt fertig!
Hallo Marcus,
du hast da am Anfang ein - Tag ohne Funktion. Wenn das draussen ist, siehts schon besser aus.
Außerdem fehlt z.B. u.a. die Dokumenttyp-Angabe - dein HTML müßtest du mal durch den Validator schicken, dann bekommst du die einzelnen Fehler aufgezeigt.
Gruß. Petra
Gegen die Infamitäten des Lebens... (siehe Hermann Hesse) http://www.universoom.de
Hallöchen!
Keine Angst, ich bin nicht plötzlich von Bord gegangen, ich Dussel hatte nur vergessen meine Freemailer-Adresse änder zu lassen.
Ich habe es - jedenfalls laut dem e3c-Validator soweit hinbekommen, das zumindest die mehr oder minder statischen Tabellen auf 0 Fehler runter sind.
Bei den Suchseiten kriege ich leider einige Fehler nicht ausgemerzt.
z. B. auf dieser Seite habe ich so einen:
xmlParseEntityRef: no name
>Ambulanter Herzsport</option><option value="AVK & Herzsport">AVK & Herzsport<
und das v von value ist mit einem Unterstrich markiert.
Dann hätte ich noch eine Frage:
In der Datenbank stehen ja auch &-Zeichen. Die Kollation ist utf-9_general_ci und das charset in den php-Dateien utf-8.
Kriege ich die &\'s irgendwie maskiert, damit der validator aufhört zu schimpfen?
Danke und Gruß
Marcus
Die & müssen als HTML-Entity codiert werden: &
Hallo Marcus
Du solltest dir diese PHP Funktion für deine Ausgabe anschauen.
Würde ich mir an deiner Stelle dann aber sehr genau durchlesen, weil man vieles auch durch die Parameter der Funktion steuern kann.
php.net/manual/de/function.htmlspecialchars.php
Wenn man beispielsweise & in normaler Schreibweise und bereits als Zeichenreferenz in der Datenbank stehen hat und beides als & ausgegeben weden soll ist der Parameter double_encode zu beachten. Wenn man diesen Parameter auf false setzt bekommt man mit nicht vorhandenen benannten Entities dann noch Probleme unter Umständen.
Die einfachen und doppelten Anführungszeichen braucht man eigentlich nur in den Fällen zu beachten wenn man diese in HTML Attributen wieder aus der Datenbank ausgibt.
Das könnte unter Umständen bei dir auch der Fall sein.
Du hast da eine Zeile stehen in deinen erstem Beitrag.
echo \'<option value="\'.$cat[\'Angebot\'].\'">\'.$cat[\'Angebot\'].\'</option>\';Für den ersten Fall müsstest du zumindest das doppelte Anführungszeichen auch beachten weil es prinzipiell in der Datenbank auch vorkommen könnte. Für die zweite Verwendung wäre das nicht unbedingt der Fall.
Entweder machst du vorher eine Variable und tauscht in beiden Fällen in Hinblick des worst Case aus oder behandelst halt eben beide Fälle unterschiedlich.
Oder du änderst alle deine Probleme in der Datenbank selbst was den Nachteil hat das jeder neuer Eintrag wieder zu einem Fehler führen kann.
Gruß
Jörg