0

画像の URL を mySQL データベースのエントリに追加しました。サイドバーの情報ウィンドウに表示したいと思います。

これが私がいじっている部分です:

downloadUrl("genxml.php", function(data) {
  var xml = data.responseXML;
  var locations = xml.documentElement.getElementsByTagName("marker");
  for (var i = 0; i < locations.length; i++) {
    var name = locations[i].getAttribute("name");
    var address = locations[i].getAttribute("address");
    var type = locations[i].getAttribute("type");
    var price = locations[i].getAttribute("price");
    var img = locations[i].getAttribute("img");
    var point = new google.maps.LatLng(
        parseFloat(locations[i].getAttribute("lat")),
        parseFloat(locations[i].getAttribute("lng")));
    var html = "<div class=loc-img><img src=" + img + "/></div><div class=loc-name>" + name + "</div> <br/>" + address + "<br/>" + "<div class=loc-type>" + type + "</div><div id=loc-price>Price Rating:" + price + "</div>";

一番下のビットは私には正しいように見えるので、何が悪いのかわかりません。画像はサーバーに保存され、URL はエントリの img フィールドに追加されており、スペルミスはありません。ページが読み込まれ、情報ウィンドウが読み込まれると、これがインスペクターに表示されます。

<img src="null/">

問題を引き起こしている可能性があると思われる phpMyAdmin のコラムの詳細を以下に示します。varchar(120) latin1_swedish_ci、Null は no に設定されます。これは URL であるため、varchar が適切な選択であると想定しました。

何かご意見は?

編集:別のフィールドでも同様の問題が発生しています。関係があるのではないかと思います。int(5)に設定された「price」フィールドがあり、単純に 1 ~ 5 の評価です。ただし、情報ウィンドウが表示されると、「null」とだけ表示されます。

4

1 に答える 1

0

私は実際に問題を解決することができました。シンプルだけど見落としがち!

各アイテムに新しいフィールドを追加するときは、データベースから情報を取得してマップで読み取り可能な形式 (XML) に変換する XML コンバーターにフィールドを登録することを忘れないでください。

私の場合、genxml.php (マップのドキュメントの指示に従って) に移動し、次のようにする必要がありました。

while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'type="' . $row['type'] . '" ';
echo 'price="' . $row['price'] . '" ';
echo 'img="' . $row['img'] . '" ';
echo '/>';
}

それが他の誰かを助けることを願っています!

于 2012-09-22T16:34:14.610 に答える