简体   繁体   English

将间隔设置为ajax形式

[英]Set interval to ajax form

So I'm trying to send the form info to php with ajax form every second, but for some reason it doesn't want to. 所以我试图每秒将表单信息发送到带有ajax表单的php,但由于某种原因它不想这样做。

Here is my latest attempt, I tried every other similar combination(like put everything in the function or just put everything into the setInterval). 这是我最近的尝试,我尝试了所有其他类似的组合(比如将所有内容放入函数中或者只是将所有内容放入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);
});

EDIT 编辑

Solved with MM answer, thank you for the help! 解决了MM的回答,谢谢你的帮助!

Simply change ajaxForm to ajaxSubmit 简单地改变ajaxFormajaxSubmit

See this (question) and this (documentation) for more information on AjaxForm vs AjaxSubmit 有关AjaxForm与AjaxSubmit的更多信息,请参阅 (问题)和文档(文档)

Essentially AjaxForm submits when the user clicks the button and AjaxSubmit does it immediately so your code should be: 基本上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);
});

Update after comment explanation 评论解释后更新

$(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;
            }
        });
    }
});

If you wish to differentiate the feed from the submit you can pass a parameter to the ajax_submit function 如果您希望将提要与提交区ajax_submit来,可以将参数传递给ajax_submit函数

Getting rid of the ajaxForm() call seems to accomplish what you are trying to do: 摆脱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);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM