0

我想从 XML 文件中获取国家/地区源和目的地,它在 localhost 中完美运行,但在服务器中无法正常工作,如果我在地图上快速移动光标,在服务器中它会显示不同的目的地国家/地区。

jquerymap.php 我调用 price_by_countries.php 文件mouseovermouseclick事件,我还传递了 2 个变量,price_by_countries.php在这个文件中我正在加载 XML 文档,我认为每次都加载 XMLfile 可能会导致这个问题。我是编程新手想尽快解决这个问题..谢谢


jquerymap.php 文件代码

 jQuery.ajax({  type: "POST",
                url: "price_by_countries.php", 
                data: "s="+source+"&d="+destination,
                dataType: 'HTML',
                success: function (msg) {
                             jQuery("#rightinput").html(msg);
                         }
                }); 

price_by_countries 文件代码

$xml = simplexml_load_file("rd.xml") or die("Error: Cannot create object");

function processXML($node){
   foreach($node->children() as $books  ){  
      if($books['source'] == trim(ucfirst($_REQUEST['s'])) && 
         $books['destination'] ==  trim(ucfirst($_REQUEST['d']))) 
      {
         echo "<pre>";
         //echo  $books ; 
         echo 'Source Country from XML file = '.$books['source'] . '  ------  Source Country from Textbox = '. trim(ucfirst($_REQUEST['s'])) ; 
         echo '<hr>';
         echo 'Destination Country from XML file =  '.$books['destination'] . '  ------  Destination Country from Textbox = '. trim(ucfirst($_REQUEST['d'])) ; 
         exit();
      } 
   }
}

processXML($xml);

网站网址:http ://realwebit.com/jquerymap/jquerymap.php

4

1 回答 1

0

该问题似乎与 onmouseover 上的数据请求有关。如果光标移动得太快,onmouseover 会同时向服务器触发多个请求!这适用于本地主机,因为没有延迟,但不是!您应该为 firefox 安装 firebug 并查看对服务器的请求。

如果您不想在每次需要缓存时都加载 xml:将客户端的 price_by_countries.php 响应保存在一个数组中,使用源和目标作为键!

如果有人单击或悬停在某个国家/地区上,请不要立即调用 jquery ajax 函数。如果您已经请求数据并返回它,请先检查数组!如果不做ajax请求。如果成功将数据存储在数组中!

卢西安

于 2013-02-10T12:15:29.293 回答