2012-04-16 50 views
-1

javascriptブロックで使用するために、phpで作成された配列にアクセスする際に問題があります。 私は約javascriptのphp配列変数(ajax呼び出しから)にアクセス

<?php echo json_encode($myArray); ?>

知っているが、私はそれのうちいずれかの結果が届きません。

javascriptを使用して配列にアクセスしようとする 'index.html'ファイルがあります。 htmlページがドロップダウンメニューから存在します。ユーザーがそのドロップダウンメニューで項目を選択すると、選択した項目がデータベースからデータを取得するための引数として使用されます。

'ajax.js'ファイルには、データベースコンテンツから配列( '$ myArray')を構築する 'retrieve.php'ファイルを実行するコードが含まれています。したがって、配列はajax呼び出しによって取得されます。

echo 'dataArray = ' . json_encode($data_array) . ';';

をし、そのjavascriptの変数を使用します。

私は私のPHPファイルからJavaScriptコードに 'エコー' することはできますか? つまり、新しい 'dataArray'変数を使用してJavaScriptコードを実行するにはどうすればよいですか?

大きな画像を表示するには:Googleのチャートで使用するためにその配列を使用しようとしています。そのためには、グラフを表示するためにjavascriptを使用する必要があります。 私はすべてのデータを照会してPHP配列に入れることができますが、javascriptを使用してHTMLページに適切に転送してからチャートをリロードすることはできません。

編集:ページ全体をリロードするには、noにajax呼び出しを使用します。

+0

あなたはJSONを取得しようとしているJSON.parse(response)を使用して、クライアントにそれを解釈すべきですAJAXコールからの応答として戻って? – Mathletics

+0

まずは、** javascriptのPHP変数にアクセスすることはできません。 –

+0

@マストレックス:そうです、私です。 – user729103

答えて

2

代わりの" echo 'dataArray = ' . json_encode($data_array) . ';'; "、あなただけthis- "echo json_encode($data_array)"
を書き、その応答は、サーバーから受信した応答(JSON)

+0

ありがとう!私は 'xmlhttp.onreadystatechange'関数で' JSON.parse'を使って、それを動作させ、更新されたグラフを描画するためのJSONデータを提供しました。これが最善の方法かどうか、jQueryを代わりに使用するかどうかはわかりません。 – user729103

0

はい、あなたが配列の連想やPHPでかつ無連想しますが、通常のようにそれを使用することはできません場合に使用されるオブジェクトである場合は、連想配列として使用することができます上記のjson_encode関数に

を割り当てることで、PHPのこの配列を使用することができますアレイ。

1

私はこれを行うための最善の方法は非常に似ていることがわかった。

クライアントコード:

<script> 
    var phpdata = <?=json_encode($jsData)?>; 
</script> 

Serverコード:

$jsData = ''; 
$jsData->first = $first; 
$jsData->second = $second_array; 

クライアント側の使用状況:

alert(phpdata.second[1]); 

EDIT:

AJAXを使用してPHPから配列を取得するには、jQueryのhttp://api.jquery.com/jQuery.getJSON/

クライアント側を使用します。

var stored_array; 
$.getJSON(url, function(data){ 
    stored_array = data; 
    // run any other code you wish to run after getting the array. 
}); 

サーバー側:

print(json_encode($array)); 

これはJSONエンコードされた変数を取得し、それを保存しますがあなたの使用のために。

+0

AJAX呼び出し中に '$ jsData'変数が構築されていれば、phpを正しく出力できますか? – user729103

+0

あなたはそれをどうやって計画しているのか正確にはわかりません。 配列を取得するためにajaxを呼び出していますか?または最初にページをレンダリングするときに配列を持っていますか? – Rodik

+0

最初にユーザーは何かを選択する必要があります(ここではドロップダウンから)、次に配列を取得するためにajax呼び出しを行い、次にグラフを描画します。ユーザーがドロップダウンから別のアイテムを選択すると、チャートを更新したいと思います。 – user729103

関連する問題