2013-03-03 81 views
0

這是一個有點複雜,所以忍受我...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錯誤,正如你上面看到的刪除功能正常工作,我得到一個健康的迴應。

+1

我想你想包括ajax調用代碼,表單的html然後可能是處理ajax調用的php。 – 2013-03-03 18:34:03

+0

你需要發佈你的代碼,這就像告訴機械師你的車壞了,而不看車。 – 2013-03-03 18:36:26

+0

是的,我明白這一點,但我希望我的一般描述就足夠了。這是相當多的代碼。 – user1009453 2013-03-03 18:42:49

回答

0

聽起來您已經發現問題,因爲在刪除後處理保存的數據和/或PHP端點存在錯誤。

這是我會怎麼調試,如果我是來看看你的代碼:

  1. 打開我的網絡檢查的網絡選項卡,並檢查通過AJAX發送的數據,以確保結構是正確的。我想在var_dump($_POST)檢查輸出。這將通過電線發送,您可以在您的Web檢查器中看到輸出。
  2. 打開控制檯檢查是否有任何JS錯誤。

如果你做了這三件事情,你很可能會發現錯誤。祝你好運。