0

foreach によって作成された index.php に配列があります。

foreach ($events as $eventkey =>$event)
                {
                    echo "<li class='desktop-2 tablet-1 mobile-1'>".$event->title."<span class='eventLetter'>A</span><br/><span class='eventLocation'>".$event->city."</span></li>";
                    $LocationArray[]= $event->latlng;
                }

                json_encode($LocationArray);

今、私はこの配列を私のjavascriptで使いたいと思っています(これは別のファイルに書かれています..)。しかし、私はこれを行うことができますか?もしそうなら、どのように?(私はphpが初めてで、AJAXなどは本当に苦手です。ここや他のサイトを見回していますが、解決策が本当に見つかりません。)

計画は、JavaScript で配列をループして、自分のサイトにある Google マップにマーカーを配置できるようにすることです。

4

4 に答える 4

0

最も簡単な解決策は、javascript 変数を含む新しいスクリプト タグを挿入し、php 配列をその変数にjson_encodeで割り当てることです。JSON (JavaScript Object Notation) は、プログラミング言語間のデータ交換のためのテキスト形式です。JSON は JavaScript に基づいているため、クライアント側でデコードする必要はありません。

echo '<script>var myarray = '.json_encode($LocationArray).'</script>';
于 2013-05-15T19:56:38.117 に答える
0

理想的には、AJAX を使用して json_encode($LocationArray) の出力を取得します...

だからあなたの最後の行は

echo json_encode($LocationArray);

これが AJAX 呼び出しを開始した JS 関数によって取り戻されたら、それを配列に変換してループすることができます。(jQuery を使用していると仮定すると、コードは次のようになります...)

$.ajax({
    url: 'index.php',
    success: function(response) {
        var resData = $.parseJSON(response);
        for (var i = 0; i < resData.length; i++)
        {
            alert(resData[i]);
        }
    }
});
于 2013-05-15T19:57:54.627 に答える
0

あなたは有効なjson出力を期待していますか?

    <?php
    foreach ($events as $eventkey =>$event)
    {
    echo "<li class='desktop-2 tablet-1 mobile-1'>".$event->title."<span class='eventLetter'>A</span><br/><span class='eventLocation'>".$event->city."</span></li>";// remove this thing or maybe place it in a variable. do not echo it.
    $LocationArray[]= $event->latlng;
    }

    echo json_encode($LocationArray);

あなたのスクリプトで

    $.ajax({
        url:"",
        success: function(data){
            var json = jQuery.parseJSON( data );

            for (var i = 0; i < json.length; i++) {
                alert(json[i]);
                //Do something
            }
        }
    })
于 2013-05-15T19:53:17.813 に答える