2011-01-02 29 views
1

Ich habe zwei Fragen:Wie man Formulardaten automatisch füllt?

1) Ich versuche, die Felder eines Formulars mit Daten aus einer MySQL-Tabelle zu füllen. Aber aus einem unbekannten Grund bekomme ich am Ende der Werte ein / hinterher, sobald ich sie in ein Textfeld setze.

<input type="text" id="first_name" name="first_name" <?php echo('value='.checkDefaultValue($vals['user_firstname'])); ?>/> 

Die Funktion

function checkDefaultValue($val,$ret="") 
    { 
     if($val=="" || $val=='not specified') 
     { 
      return $ret; 
     } 
     else 
     { 
      return $val; 
     } 
    } 

aber wenn ich echo nur <?php echo('value='.checkDefaultValue($vals['user_firstname'])); ?>

Ich habe nicht die Hinter / am Ende des Wertes erhalten. Irgendwelche Ideen Jungs?

2) Was ist der beste Weg, um die Daten im Formular von db zu füllen? Ich mache im Grunde ein edit profile Art von Ding, und ich möchte, dass die Werte in ihren jeweiligen Feldern vorzufüllen sind. Ach ja, und dies braucht keine Ajax und so ...

+0

Sind Sie sicher, dass der angezeigte Schrägstrich nicht nur der am Ende des Eingabe-Tags war, um ein sich selbst schließendes Tag anzuzeigen: ''? (Wenn ja, stellen Sie sicher, dass Sie den Wert in Anführungszeichen setzen) – jhartz

+0

Tipp: Verwenden Sie keine XHTML-Syntax. Wenn Sie es wie jeder andere mit dem falschen Mime-Typ (text/html) senden, wird es nur als HTML mit nachgestellten Fehlern interpretiert. Auch wenn Sie keine anderen Namespaces einbetten, ist dies völlig sinnlos. – mario

Antwort

2

Vergessen Sie nicht, die Zitate:

<input type="text" id="first_name" name="first_name" value="<?php echo checkDefaultValue($vals['user_firstname']); ?>" /> 
+0

Und vergessen Sie auch nicht die 'htmlentities()' – Wim

+0

oops ... albern mich. Vielen Dank. Aber wie lautet die Antwort auf meine zweite Frage? – Bluemagica

1

Für Ihre # 2 Frage, gibt es nur eine Möglichkeit, in einem Feld zu füllen: Legt fest, Feld value Attribut. Ob Sie dies serverseitig zur Seitengenerierungszeit tun, oder auf der Clientseite mit AJAX oder plain-jane Javascript ist irrelevant - Sie füllen nur noch die Formularfelder mit dem value-Attribut (oder selectedIndex oder textarea Inhalt, was auch immer) .

Wenn Sie es Server-Seite tun, müssen Sie die Werte durch htmlspecialchars(), da sonst die Daten übergeben Sie das Einfügen kann möglicherweise die Form brechen, wenn sie eine der HTML-Meta-Zeichen enthalten (', ", <, >) und zu einer XSS-Sicherheitslücke auf Ihrer Website führen.

Wenn Sie es Client-Seite tun, dann müssen Sie die Entsprechung mit json_encode() und dergleichen zu entkommen, um zu verhindern, dass alle streunenden ' in den Daten das Javascript zu brechen.

+0

+1 für htmlspecialchars() – Rob

Verwandte Themen