-1

ディレクトリ(以下)で最新のjsonファイルを監視するphpスクリプトがあります。次に、JavaScriptで、そのファイルのデータを解析して表示します。javascriptはx分ごとにデータをリロードします。jsonデータが含まれ、最新のデータを使用するためだけに、ファイルの名前はわかりません。

PHPスクリプトは、配列fileList[0]に格納されている最新のファイルを格納します。ページ全体を更新せずにJavaScriptに渡したいので、このstackoverflowの投稿を確認したところ、phpスクリプトに対してajax呼び出しを行うことができますが、この例ではページ上の要素が更新されます。

javascript変数を更新する方法はありますか?データを更新する前に、ファイル名を非表示の要素として配置し、取得することを考えましたが、それは大雑把に思えました。

<?php
date_default_timezone_set('America/New_York');

$files = glob('json/*.*', GLOB_BRACE);
usort($files, 'filemtime_compare');

function filemtime_compare($a, $b)
{
    return filemtime($b) - filemtime($a);  // Order newest to oldest
}

$i = 0;
$show = 1;  // Number of new files to show.
$fileList = array();

foreach($files as $file)
{
    if($i == $show) break; else ++$i;
    array_push($fileList, $file);
}

//echo $fileList[0] // DEBUG: Make sure I have the right file.
?>

AJAX:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
// This will send a request to a PHP page
$.ajax({
var jsonURL = "";
    url: "phpDir.php",
    dataType: "html",
    success: function(data){
        // Place the returned data into your content

    }
    jsonURL = $fileList[0];

});
</script>
</head>
<body>
4

1 に答える 1

2

「JavaScript 変数を更新する方法はありますか?」という質問に答えるには、

次のようにします。

var jsonURL = '';

function loadXMLDoc() {
    // This will send a request to a PHP page
    $.ajax({
        url: "phpDir.php",
        dataType: "JSON",
        success: function(data){
            jsonURL = data.url;
        }
    });
}

コミュニケーションを容易にするために、dataType を JSON に設定しました。したがって、PHP 出力は json_encoded()ed にする必要があります。

<?php
    $output = array('url' => $fileList[0]); // or whatever URL you want to return

    echo json_encode($output);
?>
于 2012-06-18T16:00:01.577 に答える