ホームページ > バックエンド開発 > PHPチュートリアル > PHPの2次元配列をJSに渡す問題解決の記録_PHPチュートリアル

PHPの2次元配列をJSに渡す問題解決の記録_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:17:42
オリジナル
930 人が閲覧しました

phpの二次元配列がjsの問題解決レコードに渡されます

要件:

phpはデータベースから2次元配列を読み取り、jsに渡します


実装手順:

php:json_encode → json → js:eval

つまり、phpでjson_encode()を使用してphpの2次元配列をjson形式に変換し、jsに渡し、eval()を使用して解析してjsの2次元配列を取得します。


コード:

php:

れーれー

リーリー js:

れーれー

発生した問題:

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 &#39;utf8&#39;");
mysqli_query($con,"set names &#39;utf8&#39;");

$json_arr = array(array("a","b","c",1,2,3),array("q","w",1,2));
$jsonstr = json_encode($json_arr);

?>
var json=<?=$jsonstr?>;
ログイン後にコピー
私はいつもこのようにこれらのコードを使用してきました (以前は wamp または mysql_query の低バージョンを使用していましたが、現在はエラーで放棄されたと表示されるため、mysqli に変更しました) これまでに中国語の変更はありませんでしたか。場合。ネットで調べたところ、utf-8とutf8であることが分かりました。 。 。

次のようになります:

ログイン後にコピー
結論: mysql では utf8 を使用しましょう。 。 。無言。



www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/890205.html技術記事 PHP は 2 次元配列を js に渡します。 問題解決レコードの要件: PHP はデータベースから 2 次元配列を読み取り、それを js に渡します。 php: json_encode → json → js: eval つまり、ph.. .
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート