0

xmlマーカーの結果を取得してマップにロードしようとしていますが、アラート時に変数に取得される投稿の結果は次のとおりです。

ロードされたデータ:[オブジェクトXMLDocument]

これは私のコードがどのように見えるかです:

function SendData() {

//get data from inputs

            $.ajax({
                type: "POST",
                url: "MapSearchxml.php",
                data: {
                    dataFromDate: FromDate,
                    //some more data
                    dataHasPatio: HasPatio
                },
                beforeSend: function (html) { // this happens before actual call
                },
                success: function (html) { // this happens after we get results

                alert("Data Loaded: " + html);

                }
            });
}

Firebugでは、投稿の応答は次のようになります。

<markers><marker id="1" lat="48.153938" lng="17.108459" /></markers>

次のようにデータ型をxmlに設定してみました。

                success: function (html) { // this happens after we get results
                alert("Data Loaded: " + html);
                }, 
                dataType: 'xml'
            });
}

しかし、変化は起こりませんでした。

これが私のxmlphpコードです:

$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}


header("Content-type: text/xml");

echo '<markers>';

while ($row = @mysql_fetch_assoc($result)){
  echo '<marker ';
  echo 'id="' . parseToXML($row['ID']) . '" ';
  echo 'lat="' . parseToXML($row['LAT']) . '" ';
  echo 'lng="' . parseToXML($row['LNG']) . '" ';
  echo '/>';
}

echo '</markers>';
4

1 に答える 1

1

これは、ブラウザがXMLオブジェクトをテキスト文字列に追加し、アラートでデータを表示するときにXMLオブジェクトを処理する方法です。ajax呼び出しは機能しているように見えます。

変更してみてください:

    success: function (html) { // this happens after we get results
       alert("Data Loaded: " + html);
    }, 

ただ:

    success: function (html) { // this happens after we get results
       console.log(html);
    }, 

JavaScriptコンソールでオブジェクトを表示します。また:

    success: function (html) { // this happens after we get results
        var xmlString = (new XMLSerializer()).serializeToString(html);
        alert("Data loaded: " + xmlString);
    }, 
于 2013-01-04T18:31:23.433 に答える