vandamp
Erfahrenes Mitglied
Hallo,
ich hab eine form, die ich mit einem onclick Event einen ajax Aufruf macht.
Dieser Aufruf prüft mal ob z.b das Captcha stimmt usw. und schreibt die Daten wenn alles passt in einen DB.
Wenn etwas nicht stimmt gibt es z.b "Captcha falsch" zurückund der User kann dann das Captcha ausbesser, aber wenn er dann nochmal das onclick Eventauslöst, wird das onclick Event doppelt ausgeführt - somit dann auch doppelt eingetragen.
Ich hoff ihr versteht, was ich damit meine.
Denke ich mache beim Aufrufen etwas falsch onclick="postgbeintrag();"
meine form
js, dass aufgerufen wird
ich hab eine form, die ich mit einem onclick Event einen ajax Aufruf macht.
Dieser Aufruf prüft mal ob z.b das Captcha stimmt usw. und schreibt die Daten wenn alles passt in einen DB.
Wenn etwas nicht stimmt gibt es z.b "Captcha falsch" zurückund der User kann dann das Captcha ausbesser, aber wenn er dann nochmal das onclick Eventauslöst, wird das onclick Event doppelt ausgeführt - somit dann auch doppelt eingetragen.
Ich hoff ihr versteht, was ich damit meine.
Denke ich mache beim Aufrufen etwas falsch onclick="postgbeintrag();"
meine form
PHP:
<form method="post" name="gb" id="gb">
<table width="500px" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FEE064">
<tr>
<td colspan="4" align="center"><b>Dein Eintrag:</b><br/><br/><br/></td>
</tr>
</tr>
<tr>
<td width="100"><b>Name: </b></td>
<td colspan="3"><input type="text" id="name" name="name" size="25"></td>
</tr>
<tr>
<td valign="top"><b>Text: </b></td>
<td colspan="2"><textarea id="beitrag" name="beitrag" cols="45" rows="10"> </textarea></td>
<td width="154" valign="top"></td>
</tr>
<tr>
<td valign="top"><b>Captcha:</b><br/>(Spamschutz)</td>
<td valign="top" width="100">
<img src="captcha.php?'.session_id().'" width="100px" height="30px" alt="Bild-Captcha" />
</td>
<td valign="top" width="146"><input id="captcha" name="captcha" type="text" maxlength="5" size="8" /></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="3"><br/><input type="submit" name="eintrag" value="Abschicken" onclick="postgbeintrag();"> <input type="reset" name="reset" value="Löschen"></td>
</tr>
</table>
</form>
js, dass aufgerufen wird
Code:
function postgbeintrag(){
$("form#gb").submit(function(){
$.post("ajax.php",{
name: $("#name").val(),
beitrag: $("#beitrag").val(),
captcha: $("#captcha").val(),
action: "postgbeintrag"
}, function(response) {$("#reply").html(response)});
return false;
});
};
PHP:
if($action == 'postgbeintrag')
{
//captcha check
if($captcha_check['captcha_captcha'] == "") {
echo'response captcha falsch';
exit();
}
//beitrag + name sollte mindestens da sein
if(empty($beitrag) or empty($name)){
echo'response beitrag und name leer';
exit();
}
// eintragen
echo 'eintrag eingetragen';
exit();
}