Php Ajax post表单没有';t载荷
这有点复杂,所以请容忍我 我正在构建一个网页,用户可以在其中在地图上添加不同的位置。该应用程序使用谷歌地图api 添加的位置通过ajax发送到php页面,并存储在会话变量中。然后,另一个功能会打印出位置,以便用户可以看到一个包含他/她添加的位置的列表 当用户添加了x个位置后,他们命名他们创建的地图,填写一个表单,然后将fom发送到存储位置的同一个php页面。发送表单时,位置以及表单信息存储在数据库中 一切正常,但用户也可以通过在创建地图时单击地图上的位置标记来删除位置。此单击事件发送一个带有位置lat和lgn的ajax post,然后从保存位置信息的会话中删除此特定位置 然后,该位置也会从添加了位置的列表中消失 这也很好,但是当我尝试保存表单(也通过ajax)时,什么都没有发生。表单也通过ajax发送 所以,总结一下:若我在发送表单之前并没有删除任何位置,那个么一切都可以正常工作,但若我删除了一个位置,那个么它就不工作了 如果有人能指导我正确地解决问题,我当然会提供示例代码 编辑 好的,下面是我添加两个位置时的响应:出于谷歌地图的原因,响应被编码为xmlPhp Ajax post表单没有';t载荷,php,jquery,session,Php,Jquery,Session,这有点复杂,所以请容忍我 我正在构建一个网页,用户可以在其中在地图上添加不同的位置。该应用程序使用谷歌地图api 添加的位置通过ajax发送到php页面,并存储在会话变量中。然后,另一个功能会打印出位置,以便用户可以看到一个包含他/她添加的位置的列表 当用户添加了x个位置后,他们命名他们创建的地图,填写一个表单,然后将fom发送到存储位置的同一个php页面。发送表单时,位置以及表单信息存储在数据库中 一切正常,但用户也可以通过在创建地图时单击地图上的位置标记来删除位置。此单击事件发送一个带有位置
<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>
这是从会话中删除位置的函数:
$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错误,正如您在上面看到的,delete函数工作正常,我得到了一个健康的响应 听起来您已经确定了问题所在,在删除后处理保存的数据和/或PHP端点存在错误 下面是如果我查看您的代码,我将如何调试此代码:
var\u dump($\u POST)
检查输出。这将通过网络发送,您可以在web检查器中看到输出如果你做了这三件事,你很可能会发现这个bug。祝你好运。我想你应该包括ajax调用的代码,表单的html,然后可能是处理ajax调用的php。你需要发布你的代码,就像告诉一个技工你的车坏了而不看车一样。是的,我理解这一点,但我希望我的一般描述能够满足。代码太多了。@user1009453根据我的回答,调试信息显示了什么?我现在添加了一些代码……我没有收到任何错误消息。
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();
}
});
});
};
$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;
}