這是一個有點複雜,所以忍受我...Ajax post form does not load
我正在建立一個網頁,用戶可以在地圖上添加不同的位置。該應用使用谷歌地圖api。
添加的位置通過ajax發送到php頁面,並存儲在會話變量中。另一個功能然後打印出位置,以便用戶可以看到他/她已添加的位置的列表。
當用戶添加了x個位置時,他們爲其創建的地圖命名,填寫表單然後發送到同一個存儲位置的php頁面。發送表單時,位置和表單信息一起存儲在數據庫中。
一切工作正常,但用戶也可以通過在創建地圖時單擊地圖上的位置標記來刪除位置。這個點擊事件發送一個ajax帖子,其中包含位置的lat和lgn,然後從保存位置信息的會話中刪除該特定位置。
該位置然後也從列表中消失,並添加了位置。
這也工作得很好,但是當我嘗試保存表單(也通過ajax)沒有任何反應。表格也通過ajax發送。
所以,總結一下:如果我在發送表單之前不刪除任何位置,那麼一切正常,但如果我刪除了一個位置,則它不起作用。
我當然會提供示例代碼,如果有人能指導我在正確的方向,問題可能在哪裏。
編輯
好了,這裏是我已經添加了兩個位置的迴應:respons被編碼爲XML谷歌地圖的原因。
<markers><marker titel="Test" comment="Test" lat="59.3082270911156" lng="18.060922622680664" name="" type="Parkering" score="3" /><marker titel="test2" comment="test2" lat="59.3082034749666" lng="18.060929998755455" name="" type="Parkering" score="5" /></markers>
如果我現在保存地圖+表格,它會正常工作。
這是響應後,我從地圖上刪除標記:
<markers><marker titel="Test" comment="Test" lat="59.3082270911156" lng="18.060922622680664" name="" type="Parkering" score="3" /></markers>
對我來說,它看起來就好了。
這是當用戶點擊一個標記觸發(即刪除它)
function close(marker2, lati, lngi, infoWindow, map) {
google.maps.event.addListener(marker2, "click", function() {
marker2.setMap(null);
infoWindow.close(map, marker2);
$.ajax({
type: 'GET',
url: 'test3.php',
data: "lati=" + lati + "&lngi=" + lngi,
success: function(data) {
printResult(data);
$('#send').unbind();
}
});
});
};
這是從會議delets位置的函數的函數:
$val1 = $_GET['lati'];
$val2 = $_GET['lngi'];
$newarray = removeElementWithValue($_SESSION['infomarker'], "lat", "lng", $val1, $val2);
function removeElementWithValue(&$array, $key1, $key2, $value1, $value2){
foreach($array as $subKey => $subArray){
if($subArray[$key1] == $value1) {
if($subArray[$key2] == $value2)
unset($array[$subKey]);
}
}
return $array;
}
我得到沒有js錯誤,正如你上面看到的刪除功能正常工作,我得到一個健康的迴應。
我想你想包括ajax調用代碼,表單的html然後可能是處理ajax調用的php。 – 2013-03-03 18:34:03
你需要發佈你的代碼,這就像告訴機械師你的車壞了,而不看車。 – 2013-03-03 18:36:26
是的,我明白這一點,但我希望我的一般描述就足夠了。這是相當多的代碼。 – user1009453 2013-03-03 18:42:49