[英]Jquery reload php value from .txt file
我想从.txt文件中重新加载一些数据。
.txt文件如下所示:0;播放器1; 10;播放器2; 10;播放器3; 0;播放器4; 0; 00:00:00; 0; 0
我试图在具有PHP值$s1s[2]
Player 1之后重新加载数据"10"
。
以下代码确实读取了整个txt文件(我知道),但是我对Javascript并不熟悉,我需要获取此单个Value的输出而不是整个txt文件。
PHP:
$spielfile = "data/$v/source.txt";
使用Javascript:
$(document).ready(function() {
setInterval(function() {
var randomnumber=Math.floor(Math.random()*100)
$("<?php echo "#staende_$v" ?>").load("<?php print $spielfile ?>");
}, 1000);
});
有什么建议我该怎么做?
正如Rory McCrossan所述 ,您应该使用Ajax请求以JSON返回数据。
$(document).ready(function() {
setInterval(function() {
$.get(
"yourscript.php",
{ "_": $.now() }, // disable response cache, multiple methods available.
function(data) {
data.forEach(function(player){
$('<?= "#staende_$v" ?>').text("Player: " + player.id + " has data " + player.data);
})
}
);
}, 1000);
});
您的PHP显然应该加载文本文件,获取所需的数据并以正确的格式返回:
<?php
$content = file_get_contents('./source.txt');
$content = explode(';', $content);
// The array should look like this for the js to function:
$data[] = [
'id' => 1,
'data' => $content[2]
];
// You can append more data for other players as well, easy to loop through in JS.
die(json_encode($data));
?>
浏览器缓存也有一个小问题, $.get
请求中的第二个参数可以解决该问题。 您可以执行"<?= $spielfile ?>?time="+$.now()
而不是使用第二个参数。
您可以使用正则表达式搜索字符串:
$(document).ready(function() {
setInterval(function() {
$.get(
"<?= $spielfile ?>",
{ "_": $.now() }, // disable response cache, multiple methods available.
function(data) {
var val = data.replace(/.*;Player 1;([0-9]+).*/, '$1');
$("#staende_<?= $v ?>").text(val);
}
);
}, 1000);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.