[PHP] Besserer Code?

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Ich habe ein kleines Problem. Und zwar habe ich einen Formmailer programmiert, der auch überprüft, ob alle Felder ausgefüllt sind. (und das Forumlar logischerweise nur dann abschickt, wenn alle felder ausgefüllt sind. ist das nicht der fall und man klickt auf submit, dann erschneinst ne fehlermeldung.) damit jetzt aber nicht alles gelöscht wird, nur wenn man ein feld vergessen hat, habe ich in alle texte felder den value dynamisch mti php in die felder geschrieben. nur wie mache ich das bei bspw. ratio-buttons? ich hab hier ein bsp, was funktioniert. allerdings wird so der code invalid :(
PHP:
<input type="radio" name="projekt" value="Sehr gut" <?php
         if (isset($_POST['projekt'])) {
           if ($_POST['projekt'] == 'Sehr gut') {
             echo "checked='checked'";
           }
         }
         ?>></input>
ich schreib checked dynamisch, jenachdem, ob und welcher ratio-button angeklickt wurde.
nur wie gesagt ist dieses stück leider invalid.

Line 144 column 64: unclosed start-tag requires SHORTTAG YES.

...><input type="radio" name="projekt" value="Sehr gut" <?php

hofentlich hab ich alles gut genug beschrieben :)
also ich möchte einfach nur auf eine valide art und weise dynamisch checked bei ratio-buttons einfügen.

mfg
valentin
 
Einfache Hochkommas ' sind, grob gesagt, höherwertiger als Gänsefüßchen ", deshalb funktioniert dein Ansatz nicht.

Entweder verwendest du durchgehend Gänsefüßchen, und maskierst die HTML-Ausgabe mit einem Backslash wie so:

PHP:
echo "checked=\"checked\"";

oder du setzt die einfachen Hochkommas nach außen um die PHP-Anweisung:

PHP:
echo 'checked="checked"';
 
nein nein, der code funktioniert einwandfrei...
das problem ist, dass laut W3C vaidator die oben gepostete stelle invalid ist (fehlermeldung steht ja auch oben)
allerdings ist diese stelle genauso invalid wenn ich statt
PHP:
echo "checked='checked'";
PHP:
echo 'checked="checked"';
hinschreibe...
 
Ach, ist das eigentlich ein HTML Fehler?
Ist das die Ausgabe?
Line 144 column 64: unclosed start-tag requires SHORTTAG YES.

...><input type="radio" name="projekt" value="Sehr gut" <?php
Wieso wird denn <?php mit ausgegeben?
 
Schließe das Input-Element mit nem Schrägstrich wie in <input ... ... ... /> statt mit nem separaten Tag </input>.


/edit
@Quidoff: Hmm, lesen statt überfliegen könnte auch helfen. Sollte ich mal versuchen... :D
 
Zuletzt bearbeitet:
hm... ihr versteht mich glaub ich nich richtig...
aber den ganzen code kann ich auch nich hinschrieben, 262 zeilen will sich sicher keiner durchlesen:)

also: ich habe meinen code mit dem W3C Validator überprüft und der sagt es wäre invalid (klar, der überprüft nur html code und keinen php, aber normalerweise überspringt der doch alles was in <?php ... ?> steht und überprüft nur den html teil)

und jetzt... hm, ich glaub das kapiert keiner:) (das is aber auch schwer zu erklären:) )

also ich hab ne idee. am besten sagt mir jemand, der sich ziemlich gut auskennt in php und html, ob der folgende code fehlerfrei is. das wäre sehr nett (ich mein nähm, er wäre fehlerfrei, oder der W3C validator meint halt was anderes)
PHP:
<input type="radio" name="homepage" value="Sehr gut" <?php
  if (isset($_POST['homepage'])) {
    if ($_POST['homepage'] == 'Sehr gut') {
      echo "checked='checked'";
    }
  }
  ?>></input> Sehr gut
 
Hast du deinen Code per Copy&Paste in den Validator eingegeben, oder lässt du eine fertig erzeugte Seite validieren?
 
hatte bis jetzt per Copy&Paste
hab eben mal die seite per url eingegeb validiert.
erst bin ich erschrocken! 44 fehler!
aber dann is mir aufgefallen, mein ganzer code is jetzt valid (zum glück)
die 44 fehler kamen von der scheiß lycos werbung:D
 
Zurück
Oben