我試圖通過ajax函數的參數傳遞4個變量,但由於某種原因它不接受它。我試圖傳遞的變量是url,action,id和以毫秒爲單位的超時。如果有人知道我做錯了什麼,請糾正我。謝謝。通過參數傳遞變量到AJAX函數PHP
<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>
下面的代碼的工作版本,而無需通過參數傳遞變量,而不是他們本身的功能裏:
<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>
@ jfriend00是的。它確實叫了。但只有一次。然後停止。期。即使超時只有2秒鐘。我等了幾分鐘。它沒有動。 – iscattered
什麼是後續調用傳遞的參數值?你在ajax調用之前在函數中做了一個'console.log(url)'來查看第二個調用是否將任何值傳遞給該函數? – PeterKA
我會重新寫這樣的setTimeout函數:'setTimeout(function(){myAjax(url,action,id,timeout);},timeout);' – PeterKA