1

php4を使用して、jqueryが配列を取得してjsonオブジェクトに変換できるように、配列を非表示のdivに格納するにはどうすればよいですか?複数のマーカーをロードできるようにデータの配列をgmapに渡そうとしていますが、php配列をjqueryに渡してからjsonオブジェクトに変換する方法がわからないようです。

php4用のカスタムjsonエンコードクラスを使用して、php配列をjsonにエンコードしようとしましたが、問題は、大量のガベージ文字を吐き出し、jqueryコードでエラーが発生するように見えることです。これがPHPで作成している配列Imです:

$map_array[] = array('latitude' => $result_latitude,'longitude' => $result_longitude,'html' => $result_html,'title' => $result_name,'icon' => array('image' => '/pathtoicon' .$mapi .'.png','iconsize' => array(27,27)));

$map_json = $json->encode($map_array);

次にjqueryで:

    var mapcoords = $('#mapcoord').html();

        $('#rmap').gMap(
                {
                    zoom: 10,
                    markers:$.parseJSON(mapcoords)
                }

        );

これを行うと、次のエラーが発生します。

"SyntaxError:JSON.parse:JSONデータの後の予期しない非空白文字"

これは、var mapcoords = $('#mapcoord')。text();を実行した場合に機能します。

問題は、htmlを削除することです。では、php配列をjqueryに渡して、htmlコードを保持できるようにするにはどうすればよいですか?

4

3 に答える 3

4

単純に php で javascript 変数を作成し、そこに設定してみませんか?

例えば:

<?php

   $obj = "{'test': 1}";

    echo "<script type='text/javascript'>";
    echo "var myString = " . $obj;
    echo "</script>";
?>

これで、変数は JavaScript を介してオブジェクトとしてアクセスできるようになりました。

それができない場合は、jQuery.parseJSONを使用して文字列を json オブジェクトに変換してみてください。

それが役に立てば幸い!

試しましたjQuery.parseJSON(myString)か?

于 2012-08-06T13:56:37.650 に答える
0

HTMLページとjsonデータが同じリクエストでWebサーバーからクライアントに送信されると仮定すると、サーバー側で必要なjsをphp文字列として記述する必要があります。次のスニペットは、何をする必要があるかを示しています。

$map_json = "var jsonData = " . $json->encode($map_array); 
$map_json = '<script type="text/javascript">' . $map_json . '</script>'; 
echo $map_json;

変数 jsonData は、クライアントの js スニペットにアクセスできる必要があります。

于 2012-08-06T13:56:48.027 に答える
0

私はこのようなことを試してみます:

$json = json_encode($my_array);
echo <<<EOS
<script type="text/javascript">
     my_global_js_var = $json
</script>
EOS;

JSON は有効な JavaScript であるため、json コンテンツを含む変数を取得する必要があります。非表示の HTML 要素も必要ありません。

于 2012-08-06T14:02:12.280 に答える