Fehlermeldung auf bestehender Seite ausgeben

helga

Mitglied
Hallo zusammen,

ich Hab eine Internetseite mit Formularfeldern, werden nicht alle Felder des Formulars ausgefüllt erscheint eine Fehlermeldung.

Die Fehlermeldung ist in einem Popupfenster über js integriert.
Das Fehlermeldungsfenster erscheint jetzt aber immer auf einer weißen Seite. D.h. meine Seite mit den Eingabefeldern verschwindet, dann erscheint dei Fehlermeldung auf der weißen Seite.

Ich möchte jedoch, dass die Fehlermeldung auf der bestehenden Seite (die die der user gerade bearbeitet hat) ausgegeben wird.
was muss ich im JS ändern?

Gruß
Helga


PHP:
 if($action == "add"){ 
if ($ueberschrift == "" || $text == "" ){
print("<script language='javaScript'>  
	alert('Bitte füllen Sie ALLE Felder aus!');
	</script>");
  } else {
 
Hallo

Wenn ich das richtig sehe, wird das Formular erst auf dem Server ausgewertet - dazu wird das Formular verschickt. Um dein Problem lösen zu können, bräuchte ich aber die Datei mit mit Formular (am besten als Attachment)...

bye
 
Hallo Crono,

sorry, das attachment wurde nicht akzeptiert. hier der quelltext:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationsbereich</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>


 <?php

 	//folgende  Zeile kann aktiviert werden, wenn die Ausgabe der Uhrzeit des Eintrags
	//mit ausgegeben werden soll
 			  
	//$datum[minutes]= sprintf("%02.0f", $datum[minutes]);
	$datum = getdate();	 
				
  if($action == "add"){
  if ($ueberschrift == "" || $text == "" ){
  
    print "<center><font color=#FFFFFF face=Verdana><small><strong>";
    Print "<meta http-equiv=\"refresh\" content=\"0; URL=http://stwgd.ropa-net.de/admin/\"><br></br><br></br><br></br><br></br><br></br><br></br><br></br>";
  	
  	
	print("<script language='javaScript'>  
	alert('Bitte füllen Sie ALLE Felder aus!');
	</script>");
  } else {
    $text = ereg_replace( "\015?\012\015?", "<br>", $text );
	
	$eintrag = "<b><p>$ueberschrift</b><br><br>$text<br><br><small>Eintrag vom: $datum[mday].$datum[mon].$datum[year]</small><br><br>";
	$eintrag2 = "<b><p>$ueberschrift</b><br><br>$text<br><br><small>Eintrag vom: $datum[mday].$datum[mon].$datum[year]</small><hr><br><br>";
// $eintrag2 = ereg_replace(  "<br>", "\015\012", $eintrag2 );  //eventuell rausnehmen
	
   	$Inhalt = file("content.txt");
    $datei = fopen("content.txt","w+");
	fputs ($datei, $eintrag . "\n");
	
	$Inhalt2 = file("archiv.txt");
    $datei2 = fopen("archiv.txt","w");
	fputs ($datei2, $eintrag2 . "\n");
    for($x=0; $x<count($Inhalt2); $x++) {  
	fputs( $datei2, $Inhalt2[$x] );  }
	
	
	
    fclose($datei);
	fclose($datei2);
    print "<center><font color=#FFFFFF face=Verdana><small><strong>";
    Print "<meta http-equiv=\"refresh\" content=\"0; URL=http://stwgd.ropa-net.de/\"><br></br><br></br><br></br><br></br><br></br><br></br><br></br>";
  	
  	
	print("<script language='javaScript'>  
	alert('Der Eintrag wurde erfasst!');
	</script>");
  }
  
} else{

?>
</table>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td>  <td><form name="content.php" method="get" >
				  	  <input name="action" type="hidden" value="add">
                      
        <p>&nbsp;</p>
                      
        <table width="50%" border="0" align="center">
          <tr> 
            <td colspan="3" >&nbsp;</td>
          </tr>
          <tr> 
            <td colspan="3" ><p>&nbsp;</p>
              <p><font size="4" face="Arial, Helvetica, sans-serif"><br>
                </font></p></td>
          </tr>
          <tr> 
            <td width="2%"><font face="Arial, Helvetica, sans-serif"><br>
              </font></td>
            <td colspan="2"><font face="Arial, Helvetica, sans-serif"> 
              &Uuml;berschrift:<br>
              <input type="text" name="ueberschrift" size="40" >
              </font></td>
          </tr>
          <tr> 
            <td><font face="Arial, Helvetica, sans-serif"><br>
              </font></td>
            <td colspan="2"><font face="Arial, Helvetica, sans-serif"> Textfeld:<br>
              <textarea name="text" cols="80" rows="5" ></textarea>
              </font></td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td colspan="2"><input type="submit" name="Submit" value="Abschicken"></td>
          </tr>
          <tr> 
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr> 
            <td><font face="Arial, Helvetica, sans-serif">&nbsp;</font></td>
            <td width="37%"><font face="Arial, Helvetica, sans-serif"><a href="file://///Fileserver/R%FCdi/katrin/Intranet_Stadtwerke/index.php">zum 
              Intranet</a></font></td>
            <td width="61%"><font face="Arial, Helvetica, sans-serif"><a href="file://///Fileserver/R%FCdi/katrin/Intranet_Stadtwerke/admin/delete.php">Archiv 
              editieren</a></font></td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td colspan="2">&nbsp;</td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td colspan="2"><font color="#FF0000" face="Arial, Helvetica, sans-serif">Bitte 
              beachten: <font color="#000000">Textfeldbreite beim Eingeben nicht 
              &uuml;berschreiten! </font></font></td>
          </tr>
        </table>
        <p>&nbsp;</p>
  </form></td>
 
  </tr>
</table>
 <?php
}
 ?>
</body>
</html>
 
Hallo,

ich hab die Überprüfung jetzt Clientseitig gemacht... Schau`s dir mal an, ob´s dir so passt...

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationsbereich</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
    function validate()
    {
        if((document.forms('content.php').ueberschrift.value == '')||(document.forms('content.php').text.value == '')){
            alert("Bitte alle Felder ausfüllen");
            return false;
        }
        else{
            document.forms('content.php').submit();
        }
    }
</script>
</head>

<body>


 <?php

     //folgende  Zeile kann aktiviert werden, wenn die Ausgabe der Uhrzeit des Eintrags
    //mit ausgegeben werden soll
               
    //$datum[minutes]= sprintf("%02.0f", $datum[minutes]);
    $datum = getdate();     
                
  if($action == "add"){
  if ($ueberschrift == "" || $text == "" ){
  
    print "<center><font color=#FFFFFF face=Verdana><small><strong>";
    Print "<meta http-equiv=\"refresh\" content=\"0; URL=http://stwgd.ropa-net.de/admin/\"><br></br><br></br><br></br><br></br><br></br><br></br><br></br>";
      
      
   /* print("<script language='javaScript'>  
    alert('Bitte füllen Sie ALLE Felder aus!');
    </script>");*/
  } else {
    $text = ereg_replace( "15?1215?", "<br>", $text );
    
    $eintrag = "<b><p>$ueberschrift</b><br><br>$text<br><br><small>Eintrag vom: $datum[mday].$datum[mon].$datum[year]</small><br><br>";
    $eintrag2 = "<b><p>$ueberschrift</b><br><br>$text<br><br><small>Eintrag vom: $datum[mday].$datum[mon].$datum[year]</small><hr><br><br>";
// $eintrag2 = ereg_replace(  "<br>", "1512", $eintrag2 );  //eventuell rausnehmen
    
       $Inhalt = file("content.txt");
    $datei = fopen("content.txt","w+");
    fputs ($datei, $eintrag . "\n");
    
    $Inhalt2 = file("archiv.txt");
    $datei2 = fopen("archiv.txt","w");
    fputs ($datei2, $eintrag2 . "\n");
    for($x=0; $x<count($Inhalt2); $x++) {  
    fputs( $datei2, $Inhalt2[$x] );  }
    
    
    
    fclose($datei);
    fclose($datei2);
    print "<center><font color=#FFFFFF face=Verdana><small><strong>";
    Print "<meta http-equiv=\"refresh\" content=\"0; URL=http://stwgd.ropa-net.de/\"><br></br><br></br><br></br><br></br><br></br><br></br><br></br>";
      
      
    print("<script language='javaScript'>  
    alert('Der Eintrag wurde erfasst!');
    </script>");
  }
  
} else{

?>
</table>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td>  <td><form name="content.php" method="get" action="content.php" >
                        <input name="action" type="hidden" value="add">
                      
        <p>&nbsp;</p>
                      
        <table width="50%" border="0" align="center">
          <tr> 
            <td colspan="3" >&nbsp;</td>
          </tr>
          <tr> 
            <td colspan="3" ><p>&nbsp;</p>
              <p><font size="4" face="Arial, Helvetica, sans-serif"><br>
                </font></p></td>
          </tr>
          <tr> 
            <td width="2%"><font face="Arial, Helvetica, sans-serif"><br>
              </font></td>
            <td colspan="2"><font face="Arial, Helvetica, sans-serif"> 
              &Uuml;berschrift:<br>
              <input type="text" name="ueberschrift" size="40" >
              </font></td>
          </tr>
          <tr> 
            <td><font face="Arial, Helvetica, sans-serif"><br>
              </font></td>
            <td colspan="2"><font face="Arial, Helvetica, sans-serif"> Textfeld:<br>
              <textarea name="text" cols="80" rows="5" ></textarea>
              </font></td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td colspan="2"><input type="submit" name="Submit" value="Abschicken" onClick="validate(); return false;"></td>
          </tr>
          <tr> 
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr> 
            <td><font face="Arial, Helvetica, sans-serif">&nbsp;</font></td>
            <td width="37%"><font face="Arial, Helvetica, sans-serif"><a href="file://///Fileserver/R%FCdi/katrin/Intranet_Stadtwerke/index.php">zum 
              Intranet</a></font></td>
            <td width="61%"><font face="Arial, Helvetica, sans-serif"><a href="file://///Fileserver/R%FCdi/katrin/Intranet_Stadtwerke/admin/delete.php">Archiv 
              editieren</a></font></td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td colspan="2">&nbsp;</td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td colspan="2"><font color="#FF0000" face="Arial, Helvetica, sans-serif">Bitte 
              beachten: <font color="#000000">Textfeldbreite beim Eingeben nicht 
              &uuml;berschreiten! </font></font></td>
          </tr>
        </table>
        <p>&nbsp;</p>
  </form></td>
 
  </tr>
</table>
 <?php
}
 ?>
</body>
</html>
Konnte es nicht test, da ich hier grad keinen Apache laufen hab...

ciao
 
Wens interessiert:
Man das ganze auch etwas vereinfachen:
Folgende Funktion:
PHP:
function checkform( form_name, form_data ) {
	theform = window.document[form_name];

    allright = true;
    for (i=0; i<form_data.length; i++) {
		if (theform[form_data[i]].value == "") {
        	allright = false;
        }
    }

    if (allright == false) {
    	alert("Bitte füllen Sie alle Felder aus");
    } else {
    	theform.submit();
    }
}

Und so wird sie aufgerufen:
Es wird 1. der Name des Formulars übergeben und zusätzlich noch ein array, das alle Namen der Felder, die ausgefüllt sein müssen enthält.

Bsp:
PHP:
<form name="dataform" methode="post" onSubmit="checkform('dataform', new Array('input1', 'input2', 'input3'));return false;">
<input type="text" name="input1" size="20">
<input type="text" name="input2" size="20">
<input type="text" name="input3" size="20">

<input type="submit" value=" Abschicken ">
</form>

Man könnte es auch etwas einfacher machen (ist jetzt nicht getestet):
PHP:
function checkform( form_name, form_data ) {
	theform = window.document[form_name];

    allright = true;
    for (i=0; i<form_data.length; i++) {
		if (theform[form_data[i]].value == "") {
        	allright = false;
        }
    }

    if (allright == false) {
    	alert("Bitte füllen Sie alle Felder aus");
        return false;
    } else {
    	return true;
    }
}

[...]

<form name="dataform" methode="post" onSubmit="return checkform('dataform', new Array('input1', 'input2', 'input3'));">
Hm, so viel einfacher ist es auch nicht :rolleyes:
 
Hallo,

habs mittlerweile Testen können... Bei mir lokal funktionierts. Die Fehlermeldung kommt, wenn entweder kein Text oder keine Überschrift eingegeben wurde.

Überprüfe bitte mal folgende punkte:
1) Heißt dein Formular "content.php" - wenn nicht musst du das im Javascript anpassen.
2) Hast du den Funktionsaufruf in <input type="submit" name="Submit" value="Abschicken" onClick="validate(); return false;">


bye
 
Original geschrieben von Nuinmundo
Hm, so viel einfacher ist es auch nicht :rolleyes:

Hi Nuinmundo, soviel einfacher ist´s wirklich nicht ;). Das meine Lösung nichts für sehr "umgangreiche" Formulare ist, war mir auch klar. Aber für 2 Felder ist´s zweckmäßig. Ansonsten würd ich auch mein "großes" FormCheckscript verwenden :) - oder auf eine fertige Lösung wie "Gen_Validator" zurückgreifen...

bye
 
danke @crono hatte den

Funktionsaufruf in <input type="submit" name="Submit" value="Abschicken" onClick="validate(); return false;">
vergessen
 

Neue Beiträge

Zurück