TobiasKlepp: document.write

Hi zusammen,

folgendes möchte ich realisieren: eine Formularüberprüfung mit JavaScript und PHP. PHP ist jetzt aber nicht das Problem. Wenn ein Formularfeld fehlerhaft ausgefüllt wurde, möchte ich kein alert() ausgeben, sondern per JavaScript mit document.write HTML-Code in das Dokument schreiben, der unter dem Formularfeld den entsprechenden Text ausgibt.

Ich hab es so bis jetzt realisiert, dass ich im HTML eine Funktion definiert habe, die an der entsprechenden Stelle bei Aufruf den Code schreibt. Die Funktion wird dann durch eine FormCheck-Funktion bei onSubmit() aufgerufen.

Momentan ist es leider nur so, dass wenn die Funktion, die den HTML-Code schreiben soll, die ganze Seite überschreibt.

Kann man überhaupt mit document.write in fertige HTML-Seiten dynamisch Code reinschreiben?

GRuß Tobi

  1. Hallo,

    Ich hab es so bis jetzt realisiert, dass ich im HTML eine Funktion definiert habe, die an der entsprechenden Stelle bei Aufruf den Code schreibt. Die Funktion wird dann durch eine FormCheck-Funktion bei onSubmit() aufgerufen.

    offensichtlich schreibt deine Funktion aber nicht den Code an entsprechender Stelle den Code ein, sondern überschreibt das ganze Dokument.
    Wie wäre es mit ein bisschen Quälcode?

    Gruß, Uschi

    1. Hallo zusammen,

      damit mein Problem klarer wird, der Quellcode:

      <table width="100%" border="0" cellspacing="2" cellpadding="2">
      <form name="login" method="post" action="<?php echo $url ?>login.php" onSubmit="return checkForm()">
      <tr>
      <td class="field-label" width="150" align="right">Benutzername</td>
      <td>
      <input class="field" type="text" name="login_name" size="25" maxlength="50" value="<?php echo $_COOKIE["save_name"] ?>">
      </td>
      </tr>

      <script type="text/javascript">
      <!--
      function showMessage0() {
       document.write("<tr>");
       document.write("<td align="right"> </td>");
       document.write("<td class="error">^ Dein eingegebener Benutzername ist unbekannt!</td>");
       document.write("</tr>");
      }
      //-->
      </script>

      <tr>
      <td class="field-label" align="right">Passwort</td>
      <td><input class="field" type="password" name="login_password" size="25" maxlength="25" value=""></td>
      </tr>

      <tr>
      <td align="right"> </td>
      <td><input type="checkbox" name="save_name" value="1"<?php if ($_COOKIE["save_name"]) echo " checked" ?>>Benutzername speichern</td>
      </tr>

      <script type="text/javascript">
      <!--
      function showMessage1() {
       document.write("<tr>");
       document.write("<td align="right"> </td>");
       document.write("<td class="error">^ Bitte gib dein Passwort ein!</td>");
       document.write("</tr>");
      }
      //-->
      </script>

      <tr>
      <td align="right">

      <script language="JavaScript">
      <!--
      formsubmit = false;

      function checkForm() {
       if(document.login.login_name.value == "") {
        showMessage0();
        document.login.login_name.focus();
        return false;
       }
       if(document.login.login_password.value == "") {
        showMessage1();
        document.login.login_password.focus();
        return false;
          }
      }
      //-->
      </script>

      </td>
      <td><input type="submit" name="send" value="einloggen"></td>
      </tr>
      </form>
      </table>

      1. function showMessage0() {
        document.write("<tr>");
        document.write("<td align="right"> </td>");
        document.write("<td class="error">^ Dein eingegebener Benutzername ist unbekannt!</td>");
        document.write("</tr>");
        }

        Mit dieser Funktion wird das Dokument neu beschrieben, d.h. alle alten Inhalte sind nicht mehr da.

        Struppi.