2016-05-26 4 views
3

Ich möchte ein Textfeld mit einer Variablen mit Wasserzeichen versehen.Wie gebe ich einen Platzhalter und einen Wert innerhalb desselben Textfelds ein

ich habe Arbeit es, indem Sie: placeholder="<?php echo $user;?>">

Dies stellt die richtigen Informationen in das Textfeld als Wasserzeichen. Wenn ich jedoch keine Informationen in dieses Textfeld eingabe (weil ich möchte, dass die Daten gleich bleiben), löscht es die Daten, die in $user gespeichert sind, weil ich den Datensatz nicht aktualisiert habe.

+2

Warum bei einen Platzhalter verwenden, um alle statt nur den Wert? – j08691

+0

Nur weil, wenn es mehrere Textfelder gibt, teilt der Benutzer, welche Informationen in jeder Box usw. sein müssen, anstatt Etiketten wirklich zu verwenden – Mucca019

+0

@ j08691 Kommentare über – Mucca019

Antwort

2

Obwohl nicht besonders eine PHP-Lösung (für die ich Bens Antwort empfehlen), wenn Sie den Wert haben müssen, dann können Sie nur CSS verwenden, um die Werte zu haben Als Platzhalter anzeigen und dann :focus verwenden, damit es wie ein reguläres Eingabe-Tag aussieht.

Sie könnten auch ein data-*-Attribut verwenden und dann Javascript/jQuery beim Senden verwenden, um die Werte auf das von Ihnen angegebene Datenattribut festzulegen.

input[type="text"] { 
 
    color: darkgrey; 
 
    padding: 5px; 
 
    border: 1px solid grey; 
 
} 
 
input[type="text"]:focus { 
 
    color: black; 
 
    background-color: white; 
 
}
<input type="text" value="Placeholder value" />

1

Dies ist kein Wert für die Eingabe festgelegt, aber es ist auch zuverlässig, wenn der Benutzer absichtlich einen leeren Eingang abgegeben hat:

function nullCheck($index, $default = 'UNKNOWN') { 
    if (strlen($_POST[$index]) == 0) { 
    $_POST[$index] = $default; 
    } 
} 
:

if (strlen($_POST['user']) == 0) { 
    $_POST['user'] = $user; 
} 

Sie auch eine Funktion draus machen können

es dann nennen:

nullCheck('user', $user); 

Aber ich bin nicht sicher, ob Sie die POST-Variablen setzen (in der Funktion) as: {$_POST[$index]}, weil es die Indexvariable als separate Variable betrachten könnte.

NB: Dieser Code ist nicht getestet

Verwandte Themen