Archivlink: javarea.de Forum > JavaScript > Textarea dynamisch ausfüllen
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Textarea dynamisch ausfüllen

Pages: [1]

geschrieben von sobi am 26.07.2005 - 12:08
Ich versuch mit JS Inhalte in ein Textarea zu schreiben::
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
// Display user names
    if (file_exists(USRFILE)) {
          $users = file(USRFILE);
          foreach ($users as $temp_var)
          list($vuser, $temp) = explode(":", $temp_var);
               $vuser = trim($vuser);
               $userlist.= $vuser."\n";}

    else {$userlist = $lang[35];}

    ?><script type="Text/JavaScript">
    <!--
    document.all.userdisplay.innerHTML = 'TEST';
    -->
    </script><?php
Die JS Anweisung steht wie man sieht in PHP mittendrin.

Das ist die Textarea::
HTML-Quelltext
1: 
2: 
3: 
<form name="user_administration" method="GET" action=<?php user_administration(); ?>

      <textarea rows="8" id="userdisplay" wrap="off" readonly style="background-color: #CCCCCC; border: none; width: 154; font-size: 9pt; font-family: arial, sans-serif;"></textarea>


Kann man in ein Textarea nicht nachträglich dynamisch schreiben.

geschrieben von Armin am 26.07.2005 - 12:59
moin,

1. Beim form fehlt ein schließendes >

2. Gib den Formular und dem textarea einen Namen und dann

document.formname.textareaname.value ='Es klappt';

geschrieben von sobi am 26.07.2005 - 13:53
Aber es funzt nicht. Ich bekomm meine PHP Funktion nicht aufgerufen, keine Anzeige und im Dokument wird die Tag Klammer "> in der Grafik angezeigt.

Mal eine doofe Frage:: Mein HTML Studio zeigt mir an, dass es VALUE bei TEXTAREA nicht gibt (wohl bei INPUT TYPE = TEXT pp.) ??? Kann es daran scheitern ??? Hier mal das ganze Problem::
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 

function administration() {
    // Check user input values
    $user_workflow = TRUE;

    if (isset($_GET['useradmin'])) {

       if (empty($_GET['fuser'])) {
           $status .= $lang[37]; }
       if (strlen($_GET['fpass1']) < $pass_lngth){
           $status .= $lang[38]; }
       if ($_GET['fpass1'] != $_GET['fpass2']){
           $status .= $lang[39]; }

           $user_workflow = FALSE;
    }


    // Display user names
    if (file_exists(USRFILE)) {
          $users = file(USRFILE);
          foreach ($users as $temp_var)
          list($vuser, $temp) = explode(":", $temp_var);
               $vuser = trim($vuser);
               $userlist.= $vuser."\n";}

    else {$userlist = $lang[35];}

    ?><script type="Text/JavaScript">
    <!--
    document.user_administration.userdisplay.value = 'TEST';
    -->
    </script><?php

Die PHP Funktion administration() soll aus einem Formular im selben Script aufgerufen werden
HTML-Quelltext
1: 
2: 
3: 
4: 
....<form name="user_administration" method="GET" action="<?php administration(); ?>">

      <textarea rows="8" name="userdisplay" wrap="off" readonly style="background-color: #CCCCCC; border: none; width: 154; font-size: 9pt; font-family: arial, sans-serif;"></textarea>
</form>....


Ich hab mal eine DEMO ins Netz gestellt:: http://demo.sobers.de/htaccess/easy.htaccess.php

Username:: user
Passwort:: pass

Anscheinend mach ich schon irgendeinen Fehler beim Aufruf der PHP Funktion, aber ich raff ihn (noch) nicht. Wenn man auf den 2. Screen bspw. den Button NEU drückt, wird versucht eine Datei <SCRIPT%20 aufzurufrn, was natürlich schief geht.

Wäre schön, wenn jemand einen Tipp hätte, was ich falsch mache.


PS:: dass verschiedene Variablen noch nicht als GLOBAL innerhalb der PHP Funktion definiert sind weiss ich, aber die JS Anweisung müsste doch erst mal abgearbeitet werden ???

geschrieben von Armin am 26.07.2005 - 14:17
moin moin.

Setz erstmal das JS zum füllen der Textarea in eine Funktion und starte die bei onload.

HTML-Quelltext
1: 
2: 
3: 
function start() {
	document.user_administration.userdisplay.value = 'TEST';
}


Und im body dann onload="start()".

Zitat
 Die PHP Funktion administration() soll aus einem Formular im selben Script aufgerufen werden

Du musst ein PHP-Script aufrufen!! Dort dann die Funktion aufrufen. Denke daran, PHP wird Serverseitig ausgeführt.

Armin




geschrieben von weisnix am 26.07.2005 - 14:47
Hallo,

ich weiß nicht ob dir das was bringt, so sieht es aus wenn der Text aus dem Feld ins Textarea geschrieben wird.
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
<html><head><title>Test</title>
<script type="text/javascript">
function setText () {
  document.getElementById("userdisplay").value = document.getElementById("Eingabe").value;
}
</script>
</head><body>
<form name="Formular" action="">
Text:<br>
<input type="text" id="Eingabe" size="30"><br>
<input type="button" value="absenden" onClick="setText()">
</form>

<form name="user_administration" method="GET" action=<?php user_administration(); ?>
<textarea rows="8" id="userdisplay" wrap="off" readonly style="background-color: #CCCCCC; border: none; width: 154; font-size: 9pt; font-family: arial, sans-serif;"></textarea>
</form>
</body></html>


Laut deinem Quelltext der Folgeseite kommt da so was bei raus:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
<form name="user_administration" method="GET" action="<script type="Text/JavaScript">
    <!--
    document.user_administration.userdisplay.value = 'TEST';
    -->
    </script>">


Das funktioniert ja auf keinen Fall.

Rauskommen muss das so:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
<form name="user_administration" method="GET" action="">

 <textarea rows="8" name="userdisplay" wrap="off" readonly style="background-color: #CCCCCC; border: none; width: 154; font-size: 9pt; font-family: arial, sans-serif;"></textarea>
 <script type="Text/JavaScript">
    <!--
    document.user_administration.userdisplay.value = 'TEST';
    -->
    </script>


Das Script muss unterhalb dem Textarea sitzen. Das Script setzt die Existenz des zu füllenden Objekt voraus.

Gruß

geschrieben von sobi am 26.07.2005 - 17:57
Ich versuch noch mal zu beschreiben, was ich will, vielleicht geht das ja garnicht::

Die PHP Funktion administration() soll bei einem SUBMIT in <form>...</form> abgearbeitet werden, im Form Tag sind mehrere SUBMIT Buttons vorhanden.

Von administration() sollen dann die globalen Variablen $_GET[...] überprüft werden. Abhängig von der Überprüfung wird mit lang [xyz] eine Textvariable aktiviert.

Der Wert der Textvariablen soll dann mit JS in dem TEXTAREA dynamisch angezeigt werden.



Lieg ich da irgendwie falsch ?? Leider komm ich mit eurer Hilfe nicht weiter. Wenn's zu kompliziert ist lass ich's halt und programmier's ganz in PHP. Damit funktioniert es, nur wird das Script jedesmal neu aufgebaut und es flackert ein wenig.

geschrieben von Armin am 26.07.2005 - 18:14
moin moin,

Zitat
 Die PHP Funktion administration() soll bei einem SUBMIT in <form>...</form> abgearbeitet werden, im Form Tag sind mehrere SUBMIT Buttons vorhanden.

Dazu musst den Form-Inhalt erstmal zum Sever senden. Wie du ja weiß wird PHP-Serverseitig ausgeführt. Da greift JS ja nicht.

Du kannst per PHP prüfen, und wenn nötig setzt den value direkt zwischen <textarea>blabla</textarea>

Wenn du zusätlich per js überprüfen lassen willst, ob Eingaben erfolgten dann schau dir mal den Code hier an: http://javarea.de/index.php3?openca....amp;id=251

Armin


geschrieben von sobi am 26.07.2005 - 18:59
Ich hab's jetzt verstanden. Leider lässt sich meine Idee wohl nicht so einfach realisieren. Weil ich von JS echt zu wenig Ahnung habe, mach ich's jetzt komplett in PHP. Da steht die Lösung nämlich schon. Ich vermute mal dass sonst hinterher Sachen auf mich zukommen, die ich mit meinen Mitteln nicht mehr lösen kann.

Vielleicht im nächsten Script
Thanx
Uli


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.