$order_table,"html" =>$html); html は、jsJScript コードを介したテーブル table html コードです。 評価"/> $order_table,"html" =>$html); html は、jsJScript コードを介したテーブル table html コードです。 評価">

ホームページ >バックエンド開発 >PHPチュートリアル >json_encode() の後に配列内の要素が null になるのはなぜですか?

json_encode() の後に配列内の要素が null になるのはなぜですか?

WBOY
WBOYオリジナル
2016-06-13 13:21:42805ブラウズ

json_encode() の後に配列内の要素が null になるのはなぜですか?

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
 $data           =   array("order_table" => $order_table,"html"=>$html);



html はテーブル table html コード
pass js
JScript コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
eval("(" + xmlHttp.responseText + ")");


、場合によっては html 変数

php の場合:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$data  =  json_decode($data);
print_r($data );


html も null 値です。

これはなぜですか? ? ? ?午後中ずっと解決できませんでした...専門家からアドバイスをいただけますか

-----解決策----- --- -
js は軽量配列のみを json シリアル化できますが、多次元配列を json に変換することはできません。
------解決策----------------------
$data = array("order_table" => ; $order_table,"html"=>$html);
$data は単なる php 配列 $data = json_decode($data); どうすれば結果を取得できますか?
------解決策----------------------
まず utf-8 に変換する必要がありますか?
------解決策---------
多次元配列も変換できます。 pass ブラウザのデバッグ ツールを使用して追跡し、リクエスト後に正確に何が返されるかを確認します。


------解決策---------
PHP コード
パブリック関数removeMenuItemAction(){
        $request = $this->getRequest();
        $layout = $this->_helper->layout();
        $layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        $menuId = $request->getParam('menuId', null);
        if( $menuId > 0 ){
            $SQLTool = 新しい MysqlTool();
            $con = $SQLTool->getConnect();
            if( $con ){
                $sqlLineMenu = "Type=0 のメニューバーから ID を選択";
                $resultMenu = mysql_query($sqlLineMenu);
                $rowMenubar = mysql_fetch_array($resultMenu,MYSQL_ASSOC);
                $menubarId = $rowMenubar['Id'];
                // 彼の子供たちを削除します
                $this->callBackMenuitemDelete($menuId,$menubarId);
                
                $sqlLine = "メニュー項目から削除 Id = " $menuId;
                mysql_query($sqlLine);
                mysql_close($con);
                echo json_encode(array('message'=>"削除に成功しました"));
            }
        }それ以外{
            echo json_encode(array('message'=>"削除に失敗しました"));
        }
    }
<br><font color="#e78608">------解決策---------</font><br>これは多次元配列の問題ではありません<br> <br>GB2312 の漢字のせいだと思います<br><br>UTF8 を使用してください<br><br>すべての HTML に英語または UTF8 形式を使用して、出力がどのようになるかを確認してください<br><br>
PHP コード


$data = array("order_table" => $order_table,"html" => iconv("GBK","UTF-8//IGNORE",$html));
<br><font color="#e78608">------解決策---------</font><br>
PHP コード

 $data = array("order_table" => $order_table,"html"=>$html);
exit(json_encode($data));
<br><font color="#e78608">------解決策----------------------</font><br>この場合、それは単に間違いである可能性がありますさて...$html は本当に何かありますか? <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。