设置间隔为ajax形式

Set interval to ajax form

所以我试图每秒用 ajax 表单将表单信息发送到 php,但由于某种原因它不想这样做。

这是我最近的尝试,我尝试了所有其他类似的组合(比如将所有内容都放入函数中或将所有内容都放入 setInterval 中)。

$(document).ready(function() {
    var ajaxCall=function() {
        $("#myForm").ajaxForm(function(e) {
            $.ajax({
                type:'post',
                url:'php1.php',
                data:$("#myForm").serialize(),
                success:function(data) {
                    document.getElementById("result").innerHTML=data;
                }
            });
        });
    }
    setInterval(ajaxCall,1000);
});

编辑

已解决 M.M 答案,感谢您的帮助!

只需将ajaxForm更改为ajaxSubmit

有关 AjaxForm 与 A​​jaxSubmit 的更多信息,请参阅 this (question) and this(文档)

基本上 AjaxForm 在用户单击按钮时提交,AjaxSubmit 立即执行,因此您的代码应该是:

$(document).ready(function()
{
    var ajaxCall=function()
    {
    $("#myForm").ajaxSubmit(function(e)
    {
        $.ajax(
        {
            type:'post',
            url:'php1.php',
            data:$("#myForm").serialize(),
            success:function(data)
            {
                document.getElementById("result").innerHTML=data;
            }
        });
    });
    }
    setInterval(ajaxCall,1000);
});

评论说明后更新

$(document).ready(function(){
    //live feed
    var ajaxCall=function(){
        $("#myForm").ajaxSubmit(function(e){
            ajax_submit();
        });
    }
    setInterval(ajaxCall,1000);

    //real submit
    $("#myForm").ajaxForm(function(e){
        ajax_submit();
    });

    function ajax_submit(){//ajax_code
        $.ajax({
            type:'post',
            url:'php1.php',
            data:$("#myForm").serialize(),
            success:function(data) {
                document.getElementById("result").innerHTML=data;
            }
        });
    }
});

如果您希望将提要与提交区分开来,您可以将参数传递给 ajax_submit 函数

摆脱 ajaxForm() 调用似乎可以完成您想要做的事情:

$(document).ready(function() {
  var ajaxCall = function() {
      $.ajax({
        type: 'post',
        url: 'php1.php',
        data: $("#myForm").serialize(),
        success: function(data) {
          document.getElementById("result").innerHTML = data;
        }
      });
  }
  setInterval(ajaxCall, 1000);
});