我有一個Ajax表單,它的響應似乎非常不同。有時它有效,有時會刷新,但數據仍然存儲,有時如果一起失敗,我似乎無法弄清楚爲什麼。Ajax表單有時候工作,有時會工作和刷新,有時會刷新並失敗... Bwah?
表單
<form >
<label>Name</label>
<input id="textname" type="text"/><br/>
<label>Message</label>
<textarea id="textmsg"></textarea><br/>
<label> </label>
<input type="submit" value="Send" onclick="return textin();"/><br/><br/>
<label id="textresult"></label>
</form>
jQuery的
function textin() {
var name = $("input#textname").first().attr("value");
var msg = $("textarea#textmsg").first().attr("value");
if (msg==null || msg=="")
{
alert("Message cannot be Blank");
return false;
};
$.ajax({
url: '<?=BASEURL?>/le-include/textin.php',
cache: false,
type: "POST",
data: {name : name, msg : msg},
success: function (data) {
$('#textname').attr('value', '');
$('#textmsg').attr('value', '');
$('#textresult').html(data);
$('#textresult').animate({ backgroundColor: $.Color("rgba(2,232,87,1)"), color: $.Color("rgba(0,0,0,1)") });
$('#textresult').animate({ backgroundColor: $.Color("rgba(0,0,0,0)"), color: $.Color("rgba(0,0,0,0)") });
}
})
};
textin.php
$name = $_POST['name'];
$name = mysql_real_escape_string($name);
$msg = $_POST['msg'];
$msg = mysql_real_escape_string($msg);
$ip = $_SERVER["REMOTE_ADDR"];
databaseSelect("$database");
$sql = "SELECT `ip` FROM `spamip` WHERE ip='$ip' LIMIT 1";
$result = mysql_query($sql);
if(mysql_error()) { print mysql_error(); print '<br/>'; };
$num = mysql_num_rows($result);
if($num == 0) {
$date = date_create();
$stamp = date_format($date, 'U');
$sql = "INSERT INTO `texts` (`name`, `message`, `date`, `ip`) VALUES ('$name', '$msg', FROM_UNIXTIME('$stamp'), '$ip');";
$result = mysql_query($sql);
if(mysql_error()) {
echo "Error";
} else {
echo "Success"; }
} else {
echo "Your IP has been marked as Spam";
}
謝謝@micha 返回false;使得分配有意義,形式的一部分我仍然困惑,但它的工作,所以我很高興。 –