Jquery从.txt文件重新加载php值

时间:2017-06-29 10:35:51

标签: javascript php jquery

我想从.txt文件重新加载一些数据。

.txt文件如下所示:     0;球员1; 10;球员2; 10;球员3; 0;球员4; 0; 00:00:00; 0; 0

我尝试在播放器1之后重新加载数据"10",其中PHP值为$s1s[2]

以下代码确实读取了整个txt文件(我知道),但我不熟悉Javascript,我需要获取此单个值的输出而不是整个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);
});

有什么建议我怎么做?

2 个答案:

答案 0 :(得分:0)

Rory McCrossan所述,您应该使用以JSON格式返回数据的Ajax请求。

$(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()而不是使用第二个参数。

答案 1 :(得分:0)

您可以使用正则表达式搜索字符串:

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