Javascript 从循环中的PHP文件中获取值时不更新
我试图重复调用另一个PHP文件中查询数据库的函数。其思想是,当新值输入到数据库中时,循环将在那里拾取它们 调用和循环似乎有效。但是数据库中的新计算器没有被提取出来 由于调用是在JS中完成的,所以我尝试使用XMLHttpRequest(),但没有成功 该调用设置“持续时间”的值。每当循环经过时,我都要更新这个值 “first()”位于“api.php”中Javascript 从循环中的PHP文件中获取值时不更新,javascript,php,mysql,Javascript,Php,Mysql,我试图重复调用另一个PHP文件中查询数据库的函数。其思想是,当新值输入到数据库中时,循环将在那里拾取它们 调用和循环似乎有效。但是数据库中的新计算器没有被提取出来 由于调用是在JS中完成的,所以我尝试使用XMLHttpRequest(),但没有成功 该调用设置“持续时间”的值。每当循环经过时,我都要更新这个值 “first()”位于“api.php”中 $(文档).ready(函数(){ var持续时间; (函数theLoop(i){ setTimeout(函数(){ 如果(--i){ 环(i
$(文档).ready(函数(){
var持续时间;
(函数theLoop(i){
setTimeout(函数(){
如果(--i){
环(i);
持续时间=
如果(持续时间>29){
window.location.href=http://www.google.com';
}
否则如果(持续时间<29){
}
}
}, 3000);
})(100);
});
您的问题是,当页面加载时,PHP代码只运行一次,并将为您提供HTML代码。页面中的JS将具有持续时间
始终引用PHP代码第一次运行时的值
为此,您确实需要使用AJAX,并创建一个新的PHP页面来调用,该页面将在每次发出请求时运行
JS:
//这里您执行一个AJAX GET请求
美元({
//将值传递给PHP
数据:{
“第一”:“aaa”
},
url:指向PHP页面的url,
//成功函数是GET成功完成时将运行的函数
成功:功能(持续时间){
//做你想做的事
如果(持续时间>29){
window.location.href=http://www.google.com';
}
否则如果(持续时间<29){
}
},
错误:处理请求未完成时的操作的函数
});
PHP
您的问题是,当页面加载时,PHP代码只运行一次,并将为您提供HTML代码。页面中的JS将具有
持续时间
始终引用PHP代码第一次运行时的值
为此,您确实需要使用AJAX,并创建一个新的PHP页面来调用,该页面将在每次发出请求时运行
JS:
//这里您执行一个AJAX GET请求
美元({
//将值传递给PHP
数据:{
“第一”:“aaa”
},
url:指向PHP页面的url,
//成功函数是GET成功完成时将运行的函数
成功:功能(持续时间){
//做你想做的事
如果(持续时间>29){
window.location.href=http://www.google.com';
}
否则如果(持续时间<29){
}
},
错误:处理请求未完成时的操作的函数
});
PHP
我可怜的眼睛><为什么不直接从ajax调用中得到响应?值更改->发送->处理->返回更新值->做点什么->重复不要长时间盯着深渊!这是最接近工作的。当我尝试Ajax时,我想我做得不对。用这样的函数调用另一个文件的Ajax示例将非常棒。恐怕我还没有找到我自己能理解的东西。我可怜的眼睛><为什么你不直接从ajax调用中得到响应?值更改->发送->处理->返回更新值->做点什么->重复不要长时间盯着深渊!这是最接近工作的。当我尝试Ajax时,我想我做得不对。用这样的函数调用另一个文件的Ajax示例将非常棒。恐怕我还没有找到我自己能理解的东西。事实上,还有一部分我忘了。“aaa”实际上是一个需要与$get一起发送的动态值,因为它是函数“first(---);”中的一个值。有没有一种方法可以将其与Ajax调用一起传递?您可以在PHP中使用$\u GET
,并使用$.GET的data
属性。见更新的答案。这是最后一条。非常感谢。事实上,还有一部分我忘了。“aaa”实际上是一个需要与$get一起发送的动态值,因为它是函数“first(---);”中的一个值。有没有一种方法可以将其与Ajax调用一起传递?您可以在PHP中使用$\u GET
,并使用$.GET的data
属性。见更新的答案。这是最后一条。非常感谢。
<?php
include 'api.php';
?>
<script>
$(document).ready(function(){
var duration;
(function theLoop (i) {
setTimeout(function () {
if (--i) {
theLoop(i);
duration = <?php echo first("aaa"); ?>
if(duration > 29){
window.location.href = 'http://www.google.com';
}
else if(duration < 29){
}
}
}, 3000);
})(100);
});
</script>
// HERE YOU DO A AJAX GET REQUEST
$.get({
// PASS VALUES TO THE PHP
data: {
"first": "aaa"
},
url: THE URL TO YOUR PHP PAGE,
// THE SUCCESS FUNCTION IS WHAT WILL RUN WHEN THE GET COMPLETES SUCCESSFULLY
success: function(duration) {
// DO WHAT YOU WERE GOING TO DO
if(duration > 29){
window.location.href = 'http://www.google.com';
}
else if(duration < 29){
}
},
error: A FUNCTION TO HANDLE WHAT TO DO IF THE REQUEST DOES NOT COMPLETE
});
<?php
include 'api.php';
// GET THE PARAMETER FROM THE JS
$firstParam = $_GET["first"]
echo first(firstParam);
?>