dongluanguang4774 2015-06-04 00:14
浏览 71
已采纳

通过参数PHP将变量传递给AJAX函数

I'm trying to pass 4 variables through the parameters of the ajax function, but it's not accepting it for some reason. The variables I'm trying to pass are the url, action, id, and the timeout in milliseconds. If anyone know what I'm doing wrong, please correct me. Thank you.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type = "text/javascript"> 

function myAjax(url,action,id,timeout) {
      $.ajax({
           type: "POST",
           url: url,
           data:{action: action},
           error: function(xhr,status,error){alert(error);},
           success:function(data) {
             document.getElementById( id ).innerHTML = data;
             setTimeout(myAjax, timeout);
           }

      });

}

</script>

<body onload="myAjax('testing.php','call_this','my_div',2000)">

<div id="my_div"></div>

</body>

Here's the working version of the code, without passing the variables through the parameters, and instead having them inside the function itself:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type = "text/javascript"> 

function myAjax() {
      $.ajax({
           type: "POST",
           url: 'testing.php',
           data:{action: 'call_this'},
           error: function(xhr,status,error){alert(error);},
           success:function(data) {
             document.getElementById( 'my_div' ).innerHTML = data;
             setTimeout(myAjax, 2000);
           }

      });

}

</script>

<body onload="myAjax()">

<div id="my_div"></div>

</body>
  • 写回答

2条回答 默认 最新

  • dongshi6969 2015-06-04 00:33
    关注

    Re-write the setTimeout() call like so:

    setTimeout(function() { 
        myAjax(url,action,id,timeout); 
    }, timeout);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?