Php jqueryajax:如果用户IP被阻止并且表单未提交到SQL表,则显示Jquery动画

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

出于测试目的,我有一个简单的表单,它要求提供一般信息,但用户只能输入一次信息。他们的IP地址会被记录,因此如果他们再次尝试输入信息,数据不会被发送到SQL表。我正在使用jQueryAjax进行表单提交。如果表单提交成功,则应显示消息“Information submitted.”。如果用户的IP与记录的IP匹配,则会显示消息“您只能提交一次”

我的问题是,在检测到的IP地址与数据库中的IP地址匹配后,我不确定如何让jQueryAjax显示“只能提交一次”消息。 它不必使用“error:function()…”

以下是表单和Jquery Ajax脚本:

<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>