0

私は2つのファイルphp(index.phpとdata.php)を持っています。最初は2番目にデータを送信します。これは1秒ごとに実行され、データを表示します。問題はデータが更新されていないことです

多分コードはよりよく説明します

data.php

  <?php
  session_start();

  $xml = simplexml_load_file("file.xml"); // the contents of the file changes every second
  $json = json_encode($xml);
  $_SESSION['varname'] = $json;
  ?>

index.php

  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    <script language="JavaScript">
          window.setInterval(function() { 
        <?php 
        session_start(); 
        $json = $_SESSION['varname']; 
        ?>

        var newdata = <?php echo $json ; ?>;
    //code to show data

    }, 1000); 
          </script>

前もって感謝します

4

2 に答える 2

1

session_start出力の前に呼び出す必要があります(ドキュメントの注を参照)。つまりsession_start、出力の前に呼び出す必要があります。

<?php 
    session_start(); ?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script language="JavaScript">
      window.setInterval(function() { 
    <?php 
    $json = $_SESSION['varname']; 
    ?>

    var newdata = <?php echo $json ; ?>;
//code to show data

}, 1000); 
      </script>
于 2012-08-30T20:00:43.780 に答える
0

実際には、javascript から data.php スクリプトを呼び出しているわけではありません。あなたの JavaScript はこの時点では静的であり (出力ソースを見てください)、同じ関数を同じ値で何度も実行していますnewdata。JSON を更新するには、data.php スクリプトに対して実際に AJAX 呼び出しを行う必要があります。

このスレッドの session_start コメントは重要であることに注意してください。これも修正する必要がありますが、JavaScript を使用して更新された JSON データを取得したいがnewdata、ページ上で現在静的であるため、変更の価値がないという根本的な問題は解決されません。

于 2012-08-30T19:59:48.197 に答える