0

この質問が重複していることは承知していますが、これについて何か助けていただければ幸いです。PHP配列をjsに送信する唯一の方法は、jsonでエンコードすることです。私はそれを試しましたが、何も機能しません。これが私のコードです:

<?php

Header("content-type: application/x-javascript");
error_reporting(E_ERROR | E_WARNING | E_PARSE);

    $months = Array();

    $months = ['January'=>array(), 'February'=>array(), 'March'=>array(), 'April'=>array(), 'May'=>array(), 'June'=>array(), 'July'=>array(), 'August'=>array(), 'September'=>array(), 
                        'October'=>array(), 'November'=>array(), 'December'=>array() ]; 



    // Connect to MySQL
         if ( !( $database = mysql_connect( "localhost",
            "root", "" ) ) )                      
            die( "Could not connect to database </body></html>" );

    // open Events database
         if ( !mysql_select_db( "Events", $database ) )
            die( "Could not open Events database </body></html>" );

            foreach($months as $month => $arr) {

            $result = mysql_query("SELECT * FROM posted_events WHERE Month_ = '$month' ") 
                    or die ('Error updating database because: '.mysql_error());

            while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                $months[$month][] =  $row['DayNum']; 

    }
}

            echo "var months = jQuery.parseJSON('$months');";
<?php

では、JS 配列変数 'months' には、PHP の配列変数にあったすべての要素が含まれているはずですよね? うまくいきません。何が悪いのかわからない。助けてください?この配列を外部 JS ファイルで使用して、プログラムでさらに作業を行う必要があるため、これは非常に重要です。みんなありがとう。

4

1 に答える 1

1

PHP を使用して JSON データをエンコードする必要があります。これは、 を使用して実行できますjson_encode()。エンコードしたら、変数を次のように Javascript に渡すことができます。

$months = json_encode($months);
echo "var months = $months ;";

また、現在ご利用中jQuery.parseJSONの . しかし、jQueryのドキュメントには次のように書かれています:

JSON 標準では、タブや改行などの「制御文字」は許可されていません。$.parseJSON('{"testing":"1\t2\n3"}')JavaScript パーサーが文字列のタブと改行のエスケープをリテラルのタブと改行に変換するため、次のような例はほとんどの実装でエラーをスローします。のようにバックスラッシュを 2 倍にすると、1\\t2\\n3期待どおりの結果が得られます。この問題は、PHP などのサーバー側言語から JSON を JavaScript ファイルに挿入するときによく見られます。

JSON.parse()代わりに使用してください。

json = JSON.parse(months);
for(var i in json) {

//code

}

ほとんどのブラウザはこれをサポートしていますが、サポートしていないブラウザではjson2.js.

お役に立てれば!

于 2013-08-13T15:09:05.207 に答える