Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax post表单没有';t载荷_Php_Jquery_Session - Fatal编程技术网

Php Ajax post表单没有';t载荷

Php Ajax post表单没有';t载荷,php,jquery,session,Php,Jquery,Session,这有点复杂,所以请容忍我 我正在构建一个网页,用户可以在其中在地图上添加不同的位置。该应用程序使用谷歌地图api 添加的位置通过ajax发送到php页面,并存储在会话变量中。然后,另一个功能会打印出位置,以便用户可以看到一个包含他/她添加的位置的列表 当用户添加了x个位置后,他们命名他们创建的地图,填写一个表单,然后将fom发送到存储位置的同一个php页面。发送表单时,位置以及表单信息存储在数据库中 一切正常,但用户也可以通过在创建地图时单击地图上的位置标记来删除位置。此单击事件发送一个带有位置

这有点复杂,所以请容忍我

我正在构建一个网页,用户可以在其中在地图上添加不同的位置。该应用程序使用谷歌地图api

添加的位置通过ajax发送到php页面,并存储在会话变量中。然后,另一个功能会打印出位置,以便用户可以看到一个包含他/她添加的位置的列表

当用户添加了x个位置后,他们命名他们创建的地图,填写一个表单,然后将fom发送到存储位置的同一个php页面。发送表单时,位置以及表单信息存储在数据库中

一切正常,但用户也可以通过在创建地图时单击地图上的位置标记来删除位置。此单击事件发送一个带有位置lat和lgn的ajax post,然后从保存位置信息的会话中删除此特定位置

然后,该位置也会从添加了位置的列表中消失

这也很好,但是当我尝试保存表单(也通过ajax)时,什么都没有发生。表单也通过ajax发送

所以,总结一下:若我在发送表单之前并没有删除任何位置,那个么一切都可以正常工作,但若我删除了一个位置,那个么它就不工作了

如果有人能指导我正确地解决问题,我当然会提供示例代码

编辑

好的,下面是我添加两个位置时的响应:出于谷歌地图的原因,响应被编码为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>
这是从会话中删除位置的函数:

 $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端点存在错误

下面是如果我查看您的代码,我将如何调试此代码:

  • 打开MyWebInspector的网络选项卡,检查通过AJAX发送的数据,确保结构正确
  • 在PHP端点中,我将
    var\u dump($\u POST)
    检查输出。这将通过网络发送,您可以在web检查器中看到输出
  • 打开控制台以检查任何JS错误

  • 如果你做了这三件事,你很可能会发现这个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;
    
     }