要件:
phpはデータベースから2次元配列を読み取り、jsに渡します
実装手順:
php:json_encode → json → js:eval
つまり、phpでjson_encode()を使用してphpの2次元配列をjson形式に変換し、jsに渡し、eval()を使用して解析してjsの2次元配列を取得します。
コード:
php:
れーれー発生した問題:
1. php の 2 次元配列を json_encode() を使用して json に変換すると、2 次元配列をエコーアウトできますが、変換された json は空になります。
オンラインで情報を確認し、2 次元配列に utf8 以外のエンコーディングが含まれていることが問題であることを確認します。案の定、2次元配列内の2次元配列の位置を入れ替えてしまい、最初の配列のjsonが空になってしまいました。
結論: json_encode() は多次元配列を変換できますが、基本的な要件はそれを utf8 にエンコードすることです。多次元配列内のサブ配列が json から null に変換される場合、このサブ配列にはエンコードが utf8 ではない要素が含まれる可能性が非常に高くなります。
2.wamp mysql phpmyadminではデータテーブルの内容は普通の漢字になっているのですが、それを読み込んでphpで印刷すると漢字が変わっているのですが? 。
データベース内の各テーブルの編成方法は、phpファイルでも宣言されているutf8_general_ciです
<?php header("Content-Type: text/html; charset=utf8") ; $con=mysqli_connect("url","name","password","databasename"); // Check connection if (mysqli_connect_errno($con)) echo "Failed to connect to MySQL: " . mysqli_connect_error(); mysqli_query($con,"set character set 'utf8'"); mysqli_query($con,"set names 'utf8'"); $json_arr = array(array("a","b","c",1,2,3),array("q","w",1,2)); $jsonstr = json_encode($json_arr); ?> var json=<?=$jsonstr?>;
次のようになります: