Text in inputs mit Mausklick verändern

Hier nochmal eine Überarbeitung des ganzen, wobei diesmal auch mehrzeilige Textfelder inbegriffen sind.
An sich macht die ganze Sache keinen großen Unterschied, ob nun ein Container-Tag á la <textarea></textarea> verwendet wurde oder ein nicht-Container-Tag bwie <input>.
Die Werte beider Felder lassen sich mithilfe der value-Eigenschaft prima auslesen, auch wenn das in SelfHTML für mehrzeilige Eingabefelder nicht so explizit dasteht. :)

Wer's noch nicht gemerkt hat, in meinem letzten Posting hatte sich ein Fehler eingeschlichen, den ich bei meinen vorangegangenen Ausführungen bemängelt hatte, in der geposteten Version dann doch selbst nicht verbesser hatte. :rolleyes: ;)
Hab' ich eben noch editiert, hier aber die zweite Fassung mit <textarea></textarea>-Gebrauch
PHP:
<script type="text/javascript" language="JavaScript"> 
<!-- 
function clickit (i, j, k) {
    if (k == "text") {
	if (i == j) {
            document.theform.thetext.value = "";
        }
    } else if (k == "area") {
	if (i == j) {
            document.theform.thearea.value = "";
        }
    }
}
function blurit (i, j, k) {
    if (k == "text") {
        if (i == "" || i == "\n" || i == "\t") {
            document.theform.thetext.value = j;
        }
    } else if (k == "area") {
        if (i == "" || i == "\n" || i == "\t") {
            document.theform.thearea.value = j;
        }
    }
}
//--> 
</ script>
(</ script> zusammen, wie immer)
als JavaScript in den <head>-Teil und in den <body>-Teil:
PHP:
<form name="theform">
<input type="text" size="20" name="thetext" value="text" onFocus="clickit(this.value, 'text', 'text')" onBlur="blurit(this.value, 'text', 'text')"> 
<textarea name="thearea" cols="30" rows="10" onFocus="clickit(this.value, 'textarea', 'area')" onBlur="blurit(this.value, 'textarea', 'area')">textarea</textarea>
</form>
hth,
Geist

edit:
Sorry, hatte den Thread zu guter letzt nicht aktualisiert und daher übersehen, dass die Lösung schon gefunden scheint...
 
gut erkannt, geist! aber trotzdem danke für die mühe.

jetzt tut sich ein anderes problem - wiederum beim gb - auf. ich hab folgendes gemacht:

oben:

if(isset($submit))
{
echo "ALARM!";

und dann irgendwo im formular drin:

<input type="submit" name="submit" value="submit">

jetzt tut der aber wenn ich das formular abschick das ALARM! gar nicht anzeigen ... warum??
 
Ich denke, das lässt sich so nicht sagen...denn von uns weiß keiner, wohin du submittest und wie dein Gästebuch sonst so aufgebaut ist...

Denk aber grundlegend an folgendes:
Sobald deine HTML-Datei beim Clienten gelandet ist, kann kein PHP-Code mehr geparset werden, denn das geschieht schon auf dem Server und auch die Abfragen wie dein
PHP:
if(isset($submit)) {
    echo "ALARM!";
}
wird schon auf dem Server ausgewertet, wo der User noch gar keine Aktion getätigt hat...wenn du verstehst was ich meine. :)

Ein detailierterer Aufbau der Seite könnte aber weiterhelfen, um zu verstehen wo dein Problem liegt.

Geist
 
also schön...puh *gg*:

hier der ganze kram:

PHP:
<?php include("navigation.php");
if(isset($submit))
{
 echo "ALARM!";
 // ein paar Abfragen, die aber irrelevant für das Problem sind.
}
?>
<b>guestbook</b><br>
<form action="<?php echo $PHP_SELF; ?>" method="post">
<table border="0" cellpadding="2" cellspacing="5" align="center">
<tr>
<td class="clear" align="right" widht="50%"><input type="text" size="20" name="name" value="name" onFocus="if(this.value=='name')this.value='';" onBlur="if(this.value=='')this.value='name';"></td>
<td class="clear" align="left" width="50%"><input type="text" size="20" name="location" value="location" onFocus="if(this.value=='location')this.value='';" onBlur="if(this.value=='')this.value='location';"></td>
</tr>
<tr>
<td class="clear" align="right" widht="50%"><input type="text" size="20" name="mail" value="mail" onFocus="if(this.value=='mail')this.value='';" onBlur="if(this.value=='')this.value='mail';"></td>
<td class="clear" align="left" width="50%"><input type="text" size="20" name="website" value="web site" onFocus="if(this.value=='web site')this.value='';" onBlur="if(this.value=='')this.value='web site';"></td>
</tr>
<tr>
<td class="clear" colspan="2" align="center"><textarea cols="46" rows="7" name="entry" onFocus="if(this.value=='entry')this.value='';" onBlur="if(this.value=='')this.value='entry';">entry</textarea></td>
</tr>
<tr>
<td class="clear" align="right" widht="50%"><input type="submit" name="submit" value="submit"></td>
<td class="clear" align="left" width="50%"><input type="reset" name="reset" value="reset"></td>
</tr>
</table>
</form>
<?php include("end.php"); ?>
 
Zuletzt bearbeitet:
<input type="submit" name="submit" value="submit">
Wird nicht gehen,da das nur ein Submit Feld ist und der Value undn die Variable selber bem Abschicken vom Formular nicht mehr abgeschickt wird.
Entweder so:
<input type="hidden" name="submit" value="submit">
oder so:
<form action="<?php echo $PHP_SELF; ?>?submit=submit" method="post">
 
toolkit, das stimmt nicht. es wird übertragen... wenn ich das formular nämlich mit get mache, zeigt es das oben in der adressenleiste an. also daran kanns nicht liegen.

//edit: seltsam... was ich grad gemerkt hab: die variable wird zwar oben mitübergeben in der url, aber in php drin ist sie dann irgendwie nicht verfügbar. total abartig.
 
Zuletzt bearbeitet:
wie? was? häh? den befehl kenn ich gar net... und brauch ich auch net. ich muss einzig und allein überprüfen ob die variable existiert... und wenn ja werden weitere schritte eingeleitet. aber das klappt eben blöderweise nicht... warum auch immer.
 
Zurück