Tolwin: Alert Fenster mit PHP Inhalt füllen

Hi Forum,

ich versuche über die  Aktion "onsubmit" eine Funktion aufzurufen
die mir den Inhalt eines PHP Skriptes in einer Alert Box ausgibt.

Funktion :

function popAlert(file)
{
alert(file);
return false;
}

Aufruf:

<form action="php/eintragen_gaestebuch.php"
onsubmit="return popAlert('echo php/eintragen_gaestebuch.php');" method="post">

eintragen_gaestebuch.php liefer kurze Texte wie "Die Email Adresse ist falsch" usw.

Im Moment gibt er mir nur den übergebenen Wert als Alert aus -
ist mir mittlerweile auch klar =). Wie bekomme ich den Inhalt der
PHP Datei in die Alert Box?

Vielen Dank vorab und Grüße
Tolwin

  1. ich versuche über die  Aktion "onsubmit" eine Funktion aufzurufen
    die mir den Inhalt eines PHP Skriptes in einer Alert Box ausgibt.

    Oje, muss es zwingend ein alert sein? Das könntest Du in Deinem Fall wohl nur via AJAX füllen, was jedoch m.E. der Overkill wäre.

    Im Moment gibt er mir nur den übergebenen Wert als Alert aus -
    ist mir mittlerweile auch klar =). Wie bekomme ich den Inhalt der
    PHP Datei in die Alert Box?

    Sollen da auch Fehlermeldungen drinstehen? Zwei Ansätze würden mir einfallen:

    Du leitest die Serverantwort der Formularverarbeitung in ein Popup um (target-Attribut kombiniert mit einem onsubmit ausgeführten window.open).

    Du führst eine serverseitige Prüfung der Eingaben durch und lieferst eine Ergebnisseite aus, die onload eine alert-Box mit der/den Fehlermeldungen anzeigt. Gleichzeitig stellst Du dem User das Formular zur Korrektur im Hauptfenster zur Verfügung (Stichwort: Affenformular).

    Aber sicher fällt jemandem noch was besseres ein :)

    Siechfred

    --
    Wir vom Moderatorenteam haben keinerlei Humor, von dem wir wüssten.
    1. Tach Siechfred,

      hmmm... hätte nicht gedacht, dass es so umständlich funktioniert
      bzw. gar nicht wie vorgestellt umzusetzen ist. Erst mal danke für
      die Antwort. Ich hoffe, dass noch eine mir etwas einfachere Lösung
      kommt =)

      Grüße
      Tolwin

      1. Hi Tolwin,

        muss da leider Siechfred und Alex unterstützen. Der onsubmit event des Formulars wird nunmal vor der default action ausgeführt. Die Werte aus deiner php Überprüfung stehen dir also in dem Moment gar nicht zur Verfügung (auch nicht wenn du günstigerweise <?php echo "$fehler"; ?> schreiben würdest ;-).

        Also entweder asynchron (siehe Siechfred > Ajax) oder reload nach serverseitiger Prüfung. Aber Fehlerausgabe als html ist doch auch viel schicker und weniger "beängstigend"? Nee?

        Einzige Möglichkeit vielleicht, vor der Formulargenerierung irgendwelche Daten zu holen, falls deine User sich vorher anmelden müssen oder so. Erscheint mir aber etwas abwegig...

        Gruß
        Antipitch

  2. Hallo,

    ich versuche über die Aktion "onsubmit" eine Funktion aufzurufen
    die mir den Inhalt eines PHP Skriptes in einer Alert Box ausgibt.

    Es sollte ja sowieso alles auch ohne JavaScript funktionieren. Also würde ich erst mal alles ganz normal nach dem Absenden serverseitig prüfen und wenn was nicht richtig ausgefüllt ist nochmal das Formular mit entsprechenden Hinweisen zurückgeben.
    Dann kannst Du zusätzlich noch per onclick="return ist_alles_ausgefüllt()" (auf den Submitt-Button) prüfen, ob alle Pflichtfelder ausgefüllt sind:

    function ist_alles_ausgefüllt()  
     {  
      var fehlermeldung='';  
      if(document.forms['meinformular'].elements['name'].value=='')  
       {  
        fehlermeldung += "- kein Name!\n";  
       }  
      if(document.forms['meinformular'].elements['name'].value=='')  
       {  
        fehlermeldung += "- keine E-Mail!\n";  
       }  
      
      if(fehlermeldung)  
       {  
        alert(fehlermeldung);  
        return false;  
       }  
      else  
       {  
        return true;  
       }  
     }
    

    Wenn was fehlt, wird ein Alert und "false" zurückgegeben und das Formular wird nicht abgesendet.
    Sicher kannst Du mit JavaScript auch noch mehr überprüfen (z.B. die E-Mail-Adresse), aber das würde ich nur serverseitig machen.

    Alex

    1. Hi Alex,

      das ist nicht ganz das was ich suchte.
      Eine Formularprüfung auf JS Basis ist mir bekannt.
      Ich aber prüfe per PHP ob der GästebuchEintrag bereits
      vorhanden ist, welche Worte im Text enthalten sind usw.
      und tragen dann erst den Beitrag in die Datenbank.
      Das geschieht PHP seitig, genau wie die Fehlermeldungen durch
      PHP "geworfen" werden. Diese möchte ich dann in einer Alert Box
      ausgeben.

      Grüße
      Tolwin