2011-01-03 22 views
3

Wie kann ich eine Warnung anzeigen, nachdem ein Benutzer auf eine Senden-Schaltfläche in einem Formular geklickt hat?Meldung nach dem Senden anzeigen

Ich möchte, dass die Warnung angezeigt wird, wenn die Seite geladen wurde, nachdem auf die Schaltfläche zum Senden geklickt wurde.

Gibt es eine Möglichkeit, dies zu tun?

EDIT:

Ich brauche die Nachricht HTML-Text zu sein, die auf der Seite angezeigt wird - kein Javascript Alarm.

+0

@codedude - die Warnung ist eine JavaScript-Warnung? oder nur ein HTML, das eine Klartextnachricht anzeigt? – ajreal

+0

Was enthält der Alarm? Irgendwelche Infos vom Formular? Wird das Formular an dieselbe Seite oder eine andere Seite gesendet? – jmort253

+0

Die Warnung wird einfach nur HTML-Text alt sein. Das Formular wird an dieselbe Seite gesendet. – codedude

Antwort

3

pagewithform.php

<html> 
    <head> 
    ... 
    </head> 
    <body> 
    ... 
    <form action="myformsubmit.php" method="POST"> 
     <label>Name: <input type="text" name="name" /><label> 
     <input type="Submit" value="Submit" /> 
    </form> 
    ... 
    </body> 
</html> 

myformsubmit.php

<html> 
    <head> 
    .... 
    </head> 
    <body> 
    <?php if (count($_POST)>0) echo '<div id="form-submit-alert">Form Submitted!</div>'; ?> 
    ... 
    </body> 
</html> 

EDITED Passend für neue Negativselektion von OP auf zuletzt.

EDITv2 Versuchen Sie es zu Hause!

<html> 
    <head> 
    <title>Notify on Submit</title> 
    </head> 
    <body> 
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
     <label>Name: <input type="text" name="name" /></label> 
     <input type="submit" value="Submit" /> 
    </form> 
    <?php if (count($_POST)>0) echo "Form Submitted!"; ?> 
    </body> 
</html> 

Versuchen Sie das für Größe.

+0

(Siehe bearbeiteten Beitrag) – codedude

+0

@codedude: Notiert, jetzt sehe meinen bearbeiteten Post.;-) –

+0

Bist du sicher, dass das funktioniert? – Shoe

0

Da Sie die Daten auf derselben Seite einreichen, wäre eine sauberere und modernere Methode das Verwenden von JQuery zum Senden des Formulars mithilfe von AJAX. Sie können dann eine Callback-Methode angeben, die einen Behälter auf der Seite aktualisieren, werden die Zustandsänderung zu reflektieren:

$('#myForm').submit(function() { 
    $('#myResultDiv').text("Form submitted"); 
    return false; 
}); 


... 

<div id="myResultDiv"></div> 

Diese unnötigen Neuladen der Seite verhindert, so dass Ihre Web-Anwendung flotte und reaktionsfähiger.

Dies hat auch den zusätzlichen Vorteil, dass Sie HTML und JavaScript (Inhalt und Verhalten) getrennt halten, wofür Ihre Webdesigner Ihnen danken.

Dies würde mit fast jeder Server-Plattform funktionieren, einschließlich, aber nicht beschränkt auf PHP.

+0

Ich würde Ajax verwenden, wenn ich ein gutes Verständnis davon hätte, wie es funktioniert. Im Moment habe ich grundsätzlich null. – codedude

+0

Dies ist eigentlich eines der einfacheren Beispiele. Wenn Ihr Benutzer auf Senden klickt, werden die Formulardaten wie gewohnt an Ihr PHP-Skript gesendet, mit der Ausnahme, dass der Benutzer weiterhin dieselbe Seite sieht. Wenn das Formular verarbeitet ist, wird die an "submit" gebundene anonyme Funktion aufgerufen, und der Text "Form submit" wird mit der ID "myResultDiv" in das DIV eingefügt. Meiner Meinung nach, abhängig davon, wie viel Zeit du hast und wie viel Geduld du hast, ist es eine Untersuchung wert, da es die Benutzerfreundlichkeit deiner App verbessern wird. Natürlich gibt es viele andere Lösungen hier, die wahrscheinlich einfacher für Sie sein werden – jmort253

+0

Es sollte angemerkt werden, dass AJAX immer noch als Ergänzung und nicht als Alternative betrachtet werden sollte. Es ist immer noch modern, Dinge mit Seitenübergängen zu tun und sie, wenn möglich/unterstützt, nahtlos mit AJAX-Aufrufen zu machen. –

0
<?php 

echo "<html> 
<head> 
</head>"; 

if($_POST['submit']){ 
    echo 'The form was submitted!"; 
} else { 
    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST"><input type="submit" name="submit" value="Submit">'; 
} 

echo "</html>"; 

?> 
0

Da Sie zurück auf die gleiche Seite einreichen, ein sauberer und moderner Weg, dies zu tun wäre, JQuery verwenden Sie das Formular mit AJAX zu unterbreiten. Sie können dann eine Rückrufmethode angeben, die einen Container auf der Seite aktualisiert, um die Statusänderung widerzuspiegeln:

Verwandte Themen