1

ユーザーがリンクをクリックするか、バーをスライドすると、データベースの内容によって変更される JavaScript のリストがあります。現在、xmlhttp リクエストを使用して、リストを生成する php ページを取得しています。この形式で動作する静的リストがあります。

var mark_list = [
{ "EntID" : 3, "x" : 100, "y" : 400},
];

PHP ページで { "EntID" : 3, "x" : 100, "y" : 400} を生成し、mark_list を responseText に設定しようとしましたが、それは単なる文字列だと思います。この新しいリストを変数に入れる方法を見つけるのに苦労しています。

誰にも提案や解決策はありますか? どうぞよろしくお願いいたします。

カルム

4

2 に答える 2

1

responseText実際には、文字列で表されるテキストにすぎないため、現在出力している方法では、それだけですべてのトリックを実行することはできません。これを行うには、基本的に2つの方法があります。

  • JavaScriptでは、サーバーから提供される出力を解析します。これは、純粋な文字列で、好きなように行うことができます。たとえば、中括弧とコロンベースの構文を使用して指定した形式を解析するJavaScriptを記述できます。または、別の形式(XMLなど)を使用して作業を少し減らすこともできますが、出力の解釈はjavascriptで行うことができます。

  • オブジェクトとリストの記述に使用される形式に出力できます。JSONはそのようなフォーマットの大きな例です。JSONで出力すると、上記で使用した形式に似たものが得られ(JSONはJavascript Object Notationの略で、javascriptの構文の一部に基づいています)、それを使用できるようにするために必要なのは取得したいデータにアクセスします。ほとんどのブラウザでこれに使用できますJSON.parse()が、より広範囲にサポートされている代替手段はjQueryjQuery.parseJSON()です(この場合はjQueryを使用します。この場合も提供する必要があります)。

于 2012-04-20T21:50:56.620 に答える
1

https://github.com/douglascrockford/JSON-js/blob/master/json2.jsの json スクリプトを含めて、ブラウザーに JSON オブジェクトがあることを確認してください。

利用可能な場合はネイティブ ブラウザーの JSON オブジェクトに従います。利用できない場合は、現在サポートされていないブラウザーでこの機能を利用できるように追加します。

コードで、PHP スクリプトからの出力を受け取った後、これを実行します。

var mark_list = JSON.parse(responseText);

PHP スクリプトからの出力に基づいて、これを行う必要がある場合があります。

var stuff = JSON.parse(responseText);
var mark_list = [stuff];

これにより、PHP が返す JSON 文字列が実際の JavaScript オブジェクトに変換されます。

PHP コードでは、次のようなことができます。

$output = array(
    array(
        'EntId' => 3,
        'x' => 100,
        'y' => 400,
    ),
);

echo json_encode($output);

その後var mark_list = JSON.parse(responseText);、JavaScript でオプションを使用できます。

于 2012-04-20T21:43:02.380 に答える