$ _GET PHP表单变量AJAX检查404然后提交表单

时间:2013-07-12 00:11:38

标签: php ajax http-status-code-404

我在页面上有一个表单,它接受'ID',用户输入ID,例如; 1026

表单提交到同一页面ajax抓取ID对其他站点进行检查。如果响应不是404错误且$ _GET为真,我需要能够发布表单。

继承我拥有的东西

<script>
$(document).ready(function(){
 $('form#getid').submit(function(){
  var theid = $('input#id').val();
  var dataString = "id=" + theid;
    $.ajax({
          type: "POST",
          data: dataString,
  success: function(response, status, xhr){
    if(status=="success") {
      $("#err-404").html(response);
    }
    else { alert(status+ ' - '+ xhr.status); }
  }
}
         }); 

  });

return false;
});
</script>

我的表格

<form id="getid" action="">
    <input type="text" name="id" />
    <input type="submit" class="button" value="Go">
<div class="error" id="err-404"></div>

我认为我在正确的轨道上,只是不确定如何将它们放在一起。

1 个答案:

答案 0 :(得分:0)

首先,如果您不必为数据使用字符串,请不要。您可以像这样使用数组:

$.ajax({
      type: "POST",
      data: {'id': theid },

哪个更干净,更易于维护。

至于你的问题,你的代码有点不清楚,但你可能应该在submit()事件结束时return false阻止表单提交,然后在AJAX事件中,如果已提交提交,请执行$('#getid').submit()。您可能必须设置某种标记(隐藏输入或数据属性),以避免再次检查AJAX触发的提交,从而导致无限循环。

这里有一个注释:404s会导致AJAX处理程序中的error()回调触发,因此404不会触发您设置的成功回调。