Php jqueryajax:如果用户IP被阻止并且表单未提交到SQL表,则显示Jquery动画
出于测试目的,我有一个简单的表单,它要求提供一般信息,但用户只能输入一次信息。他们的IP地址会被记录,因此如果他们再次尝试输入信息,数据不会被发送到SQL表。我正在使用jQueryAjax进行表单提交。如果表单提交成功,则应显示消息“Information submitted.”。如果用户的IP与记录的IP匹配,则会显示消息“您只能提交一次” 我的问题是,在检测到的IP地址与数据库中的IP地址匹配后,我不确定如何让jQueryAjax显示“只能提交一次”消息。 它不必使用“error:function()…” 以下是表单和Jquery Ajax脚本:Php jqueryajax:如果用户IP被阻止并且表单未提交到SQL表,则显示Jquery动画,php,jquery,mysql,ajax,forms,Php,Jquery,Mysql,Ajax,Forms,出于测试目的,我有一个简单的表单,它要求提供一般信息,但用户只能输入一次信息。他们的IP地址会被记录,因此如果他们再次尝试输入信息,数据不会被发送到SQL表。我正在使用jQueryAjax进行表单提交。如果表单提交成功,则应显示消息“Information submitted.”。如果用户的IP与记录的IP匹配,则会显示消息“您只能提交一次” 我的问题是,在检测到的IP地址与数据库中的IP地址匹配后,我不确定如何让jQueryAjax显示“只能提交一次”消息。 它不必使用“error:funct
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("form#submit").submit(function() {
var words = $('#words').attr('value');
$.ajax({
type: "POST",
url: "getuser.php",
data: "words="+ words,
success: function(){
$('form#submit').hide(function(){$('div.success').fadeIn();});
},
error: function(){
$('form#submit').hide(function(){$('div.fail').fadeIn();});
}
});
return false;
});
});
</script>
<form id="submit" method="post">
<fieldset>
<legend>Enter Information</legend>
<label for="words">words:</label>
<input id="words" class="text" name="words" size="20" type="text">
<button> Submit </button>
</fieldset>
</form>
<div class="success" style="display: none;">Information submitted.</div>
</div>
<div class="fail" style="display: none;">You only get to submit once.</div>
如果PHP脚本在找到IP时返回HTTP错误,那么代码应该可以工作。
但不确定die()是否返回并有错误响应
我明白了。
我有类似的东西。
这就是我的PHP返回的结果
if ( isset($_GET["ajax"]) ) {
echo $success ? "success" : "error";
}
还有我的AJAX处理程序:
$.ajax( {
url: contactForm.attr( 'action' ) + "?ajax=true",
type: contactForm.attr( 'method' ),
data: contactForm.serialize(),
success: submitFinished
} );
function submitFinished( response ) {
response = $.trim( response );
if ( response == "success" ) {
...
} else {
...
}
}
这应该能满足你的需要
编辑:
新答案
<script>
$(document).ready(function(){
$("form#submit").submit(function() {
var words = $('#words').attr('value');
$.ajax({
type: "POST",
url: "getuser.php",
data: "words="+ words,
success: function(response){
$('form#submit').hide(function(){$('div.status').append(response).fadeIn();});
},
error: function(){
$('form#submit').hide(function(){$('div.status').append("Error while processing request.").fadeIn();});
}
});
return false;
});
});
</script>
$(文档).ready(函数(){
$(“表单提交”).submit(函数(){
var words=$('#words').attr('value');
$.ajax({
类型:“POST”,
url:“getuser.php”,
数据:“words=“+words,
成功:功能(响应){
$('form#submit').hide(function(){$('div.status').append(response.fadeIn();});
},
错误:函数(){
$('form#submit').hide(function(){$('div.status').append(“处理请求时出错”).fadeIn();});
}
});
返回false;
});
});
我没有对此进行测试,但这应该适用于您的案例。我会在这里重新测试您的方法。让PHP返回一个字符串,或者
您已提交
或者您已完成此操作,请停止提交。现在。不,真的,停止。
然后,在您的success
函数中,将其设置为success div的文本(val()
)。它不必使用“error:function()”,我只需要脚本告诉用户“您只能提交一次”如果他们的IP记录在SQL表中。请参阅我更新的OP,以更清楚地解释我正在尝试做什么。我对Jquery Ajax和Ajax总体上还是相当陌生的。您能用我提供的jQueryAjax和PHP脚本解释一下您的例子吗?请参阅我更新的OP,以更清楚地解释我要做的事情。
$.ajax( {
url: contactForm.attr( 'action' ) + "?ajax=true",
type: contactForm.attr( 'method' ),
data: contactForm.serialize(),
success: submitFinished
} );
function submitFinished( response ) {
response = $.trim( response );
if ( response == "success" ) {
...
} else {
...
}
}
<script>
$(document).ready(function(){
$("form#submit").submit(function() {
var words = $('#words').attr('value');
$.ajax({
type: "POST",
url: "getuser.php",
data: "words="+ words,
success: function(response){
$('form#submit').hide(function(){$('div.status').append(response).fadeIn();});
},
error: function(){
$('form#submit').hide(function(){$('div.status').append("Error while processing request.").fadeIn();});
}
});
return false;
});
});
</script>