使用PHP的Ajax返回值

时间:2012-12-29 13:17:22

标签: php javascript jquery ajax

嗨,我在制作我的功能结构时遇到了一些问题。非常感谢任何帮助。

首先,此功能应在 index.php 触发 OnChange 事件后删除地图标记。 并将post值发送到 xmlmapquery.php 以进行数据检索。 一旦检索到,数据应存储回<div id='content'>

中的 index.php
function filter()
{ 
   for (var i = 0; i < markersArray.length; i++ ) {
      markersArray[i].setMap(null);
   }
   markersArray.length = 0;

   var lgu = $('#lgu').val();
   var category = $('#category').val();
   var type = $('#type').val();
   $.get('xmlmapquery.php', { filter: lgu, filter2: category, filter3: type},function(data){
        $('#content').text(data);
   )};
};

现在这是 xmlmapquery.php

<?php  
  include('connection_db.php');
  // Start XML file, create parent node
  $dom = new DOMDocument("1.0");
  $node = $dom->createElement("markers");
  $parnode = $dom->appendChild($node); 

  if(isset($_POST['filter']) && isset($_POST['filter2']) && isset($_POST['filter3'])){
     $query = "SELECT * FROM markers WHERE type='".$_POST['filter']."' and type='".$_POST['filter2']."'
                                        and type='".$_POST['filter3']."'";
  } 
  // Select all the rows in the markers table
  $result = mysql_query($query);
  if (!$result) {  
     die('Invalid query: ' . mysql_error());
  } 

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

  // Iterate through the rows, adding XML nodes for each
  while ($row = @mysql_fetch_assoc($result)){  
    // ADD TO XML DOCUMENT NODE  
    $node = $dom->createElement("marker");  
    $newnode = $parnode->appendChild($node);   
    $newnode->setAttribute("name",$row['name']);
    $newnode->setAttribute("address", $row['address']);  
    $newnode->setAttribute("lat", $row['lat']);  
    $newnode->setAttribute("lng", $row['lng']);  
    $newnode->setAttribute("type", $row['type']);
  } 
  echo $dom->saveXML();
?>

非常感谢这方面的帮助。目前该功能 NOT 即使删除标记也无法正常工作。一旦我得到这个东西工作,我将添加更多的命令到该函数,将获取数据并为我的地图创建新的标记。提前谢谢。

1 个答案:

答案 0 :(得分:2)

假设您的脚本逻辑正常,并且没有die()或其他php方法返回null或false(无论如何,您应该在浏览器控制台中看到)。

要做的事情是:

1 - 启动请求时检查firebug / chrome /浏览器控制台(如果以某种方式隐藏请求,请使用控制台中的“save”请求方法来检查)

2 - 使用var_dump($dom->saveXML());代替echo $dom->saveXML();

3 - 尽可能检查服务器/ php日志

4 - 请确保您的请求是完整且有效的,我指的是$.get('xmlmapquery.php');

如果您按照这一行进行调试,除非ghost不存在,您将能够轻松地运行脚本。

希望它会有所帮助