代码如下:
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
//主要用来获取r.point.lat和r.point.lng这两个经纬值
$.ajax({
url:'list.php?fid=$fid',
data: {'lng':r.point.lng,'lat':r.point.lat},
type:'get',
async:false,
success:function(d){
alert(d);
}
});
else {
alert('failed'+this.getStatus());
}
},{enableHighAccuracy: true});
我的PHP文件里(list.php)是MYSQL查询语句和while循环。我上面代码获取的经纬度是用来在mysql查询语句里与商家设置的经纬度计算获取距离用的,PHP里使用$_GET['lng']在AJAX返回值里可以获取到那两个值(我通过alert(d)可以看到商家列表里计算出的距离),可问题出现了。如果获取不到上面的lat和lng就会错误并在前端打印出MYSQL所有语句。如果我$('body').html(d);就会出现AJAX无限自动刷新加载整个页面。(初步认为可能是在执行AJAX的时候因为返回的是整个HTML页面,所以AJAX又再一次执行了一次,如此造成不断刷新加载)。
请问,我该如何解决这个问题呢?先谢谢啦!~
PHP文件
<?php
define('MOB_PAGE',true);
require(dirname(__FILE__)."/global.php");
choose_domain(); //域名判断
//导航条
@include(Mpath."data/wapguide_fid.php");
$fidDB=$db->get_one("SELECT A.* FROM {$_pre}sort A WHERE A.fid='$fid'");
if(!$fidDB){
showerr("栏目不存在");
}elseif($fidDB[jumpurl]){
header("location:$fidDB[jumpurl]");
exit;
}
/**
*模型配置文件
**/
$field_db = $module_DB[$fidDB[mid]][field];
//字段筛选
unset($TempSearch_2,$TempSearch_array,$seo_tile);
foreach($field_db AS $key=>$value){
if($value[listfilter]){
if($$key){ //SEO,title
$detail=explode("\r\n",$value[form_set]);
foreach($detail AS $_value){
$detail2=explode("|",$_value);
$detail2[1] || $detail2[1]=$detail2[0];
if($detail2[0]==$$key){
$seo_tile.=" {$value[title]} {$detail2[1]} ";
break;
}
}
}
$TempSearch_2.="$key=>'{$$key}',"; //分页链接使用
$TempSearch_array[$key]=$$key; //其它链接使用
$search_fieldDB[$key][$$key!=''?$$key:0]=" selected class='ck' style='color:red;'";
}
}
/**
*栏目配置参数及栏目用户自定义的变量
*对栏目用户自定义的变量附件路径做处理
*以下用的比较少,可以删除忽略
**/
$fidDB[config]=unserialize($fidDB[config]);
$CV=$fidDB[config][field_value];
$_array=array_flip($fidDB[config][is_html]);
foreach( $fidDB[config][field_db] AS $key=>$rs){
if(in_array($key,$_array)){
$CV[$key]=En_TruePath($CV[$key],0);
}elseif($rs[form_type]=='upfile'){
$CV[$key]=tempdir($CV[$key]);
}
}
//SEO
$titleDB[title] = $fidDB[metatitle]?seo_eval($fidDB[metatitle]):strip_tags("{$city_DB[name][$city_id]} {$zone_DB[name][$zone_id]} {$street_DB[name][$street_id]} $fidDB[name] $seo_tile");
$titleDB[keywords] = seo_eval($fidDB[metakeywords]);
$titleDB[description] = seo_eval($fidDB[metadescription]);
//大分类与小栏目的判断
if($fidDB[type]){
$sortDB=ListOnlySort();
}else{
$_erp=$Fid_db[tableid][$fid];
if($fidDB[maxperpage]){
$rows=$fidDB[maxperpage];
}elseif($webdb[Info_ListNum]){
$rows=$webdb[Info_ListNum];
}else{
$rows=5;
}
$listdb=ListThisSort($rows,70);
if($totalNum){
$showpage=getpage("","","waplist.php?",$rows,$totalNum);
$showpage=preg_replace("/waplist\.php\?&page=([0-9]+)/eis","get_info_url('',$fid,$city_id,$zone_id,$street_id,array($TempSearch_2'page'=>'\\1'))",$showpage);
}
}
//列表页个性头部与尾部
get_list_tpl($head_tpl,$foot_tpl,$main_tpl);
//获取标签内容
$template_file=$fidDB[type]?getTpl("wapbigsort",$main_tpl):getTpl("waplist_$fidDB[mid]",$main_tpl);
fetch_label_value(array('pagetype'=>'2','file'=>$template_file,'module'=>$webdb['module_id']));
//require(Mpath."inc/waphead.php");
require($template_file);
//require(Mpath."inc/wapfoot.php");
function nearby_utf8($str) {
if('utf-8' != CHARSET) {
return iconv('utf-8', 'gbk',$str);
}
return $str;
}
/**
*针对栏目获取内容信息列表
**/
function ListThisSort($rows,$leng){
global $db,$_pre,$page,$fid,$fidDB,$SQL,$city_id,$zone_id,$street_id,$field_db,$timestamp,$webdb,$timestamp,$Murl,$Fid_db,$_erp,$totalNum,$otherSelect,$Module_db;
$SQL='';
if($street_id>0){
$SQL =" AND A.street_id='$street_id' ";
}elseif($zone_id>0){
$SQL =" AND A.zone_id='$zone_id' ";
}else{
$SQL = build_module_sql();
}
//用户自定义筛选字段,过滤数据
foreach($field_db AS $key=>$value){
if($value[listfilter]){
if($_GET[$key]!=''){
$otherSelect++;
if($value[form_type]=='checkbox'){
$SQL .=" AND BINARY B.`$key` LIKE '%/#/$_GET[$key]/#/%' ";
}else{
$SQL .=" AND BINARY B.`$key`='$_GET[$key]' ";
}
}
}
}
if(!$webdb[Info_ShowNoYz]){
$SQL .=" AND A.yz='1' ";
}
if($page<1){
$page=1;
}
if($fidDB[listorder]==1){
$sql_list="A.posttime";
$sql_order="DESC";
}elseif($fidDB[listorder]==2){
$sql_list="A.posttime";
$sql_order="ASC";
}elseif($fidDB[listorder]==3){
$sql_list="A.hits";
$sql_order="DESC";
}elseif($fidDB[listorder]==4){
$sql_list="A.hits";
$sql_order="ASC";
}elseif($fidDB[listorder]==5){
$sql_list="A.lastview";
$sql_order="DESC";
}elseif($_GET[dis]==6){
$sql_list="if(distance = '商家还未上传位置哟',1,0), distance+0";
$sql_order="ASC";
}else{
$sql_list="A.list";
$sql_order="DESC";
}
$tsdb=array();
$lonA = $_GET['lng'];
$latA = $_GET['lat'];
echo $lonA.'-'.$latA.'</br>';
$i=0;
require(ROOT_PATH."inc/gps.inc.php");
$dw = new GPS();
$mysql2="select SQL_CALC_FOUND_ROWS r.* from(";
$mysql1='select * from (
select e.groupid,d.qy_contact_tel,d.host,d.myhost,B.*,d.title title1,d.gg_maps,substring_index(gg_maps, ",", 1) AS lng,substring_index(gg_maps, "," ,- 1) AS lat,a.title,a.mid ,
a.fname ,a.info ,a.hits,a.comments ,a.posttime,a.list ,a.username ,a.titlecolor,a.fonttype ,
a.picurl ,a.ispic,a.yz ,a.yzer ,a.yztime ,a.levels ,a.levelstime,a.keywords,a.jumpurl,a.iframeurl
,a.style,a.head_tpl ,a.main_tpl ,a.foot_tpl,a.target ,a.ishtml,a.ip,a.lastfid,a.money,
a.passwd,a.editer,a.edittime,a.begintime ,a.endtime,a.config ,a.lastview ,a.city_id ,
a.zone_id,a.street_id ,a.editpwd ,a.showday ,a.visit_log ,a.visit_num,a.telephone,a.mobphone ,
a.email,a.oicq ,a.msn ,a.linkman,a.postcode,a.address ,a.weburl ,a.fax,a.maps,a.picnum ,a.replytime ,a.yhqID,
case when gg_maps then ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN(('.$latA.' * PI() / 180 - substring_index(gg_maps, ",", -1) * PI() / 180) / 2),2) + COS('.$latA.' * PI() / 180) * COS(substring_index(gg_maps, ",", -1) * PI() / 180) * POW(SIN(('.$lonA.' * PI() / 180 - substring_index(gg_maps, "," ,1) * PI() / 180) / 2),2))) * 1000) else "商家还未上传位置哟" end distance
FROM qb_fenlei_content A LEFT JOIN ';
$mysql4=' B ON A.id=B.id
LEFT JOIN QB_HY_COMPANY d ON a.uid=d.uid
LEFT JOIN qb_memberdata e on a.uid=e.uid
LEFT JOIN qb_group f on e.groupid=f.gid';
$min=($page-1)*$rows;
$query=$db->query("$mysql2$mysql1{$_pre}content_{$fidDB[mid]}$mysql4 WHERE a.list>a.posttime and A.fid=$fid $SQL ORDER BY $sql_list $sql_order ) o
union
$mysql1{$_pre}content_{$fidDB[mid]}$mysql4 WHERE a.list=a.posttime and A.fid=$fid $SQL ORDER BY $sql_list $sql_order ) p
union
$mysql1{$_pre}content_{$fidDB[mid]}$mysql4 WHERE a.list=a.posttime and A.fid=$fid $SQL ORDER BY $sql_list $sql_order ) q
union
$mysql1{$_pre}content_{$fidDB[mid]}$mysql4 WHERE a.list=a.posttime and a.uid=0 and A.fid=$fid $SQL ORDER BY $sql_list $sql_order ) s)r LIMIT $min,$rows"); // LIMIT $min,$rows
function getmapDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2){
$EARTH_RADIUS=6378.137;
$PI=3.1415926;
$radLat1 = $lat1 * $PI / 180.0;
$radLat2 = $lat2 * $PI / 180.0;
$a = $radLat1 - $radLat2;
$b = ($lng1 * $PI / 180.0) - ($lng2 * $PI / 180.0);
$s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
$s = $s * $EARTH_RADIUS;
$s = round($s * 1000);
/* echo $s.'<br />';
if ($len_type > 1)
{
//$s /= 1000;
} */
return round($s,$decimal);
}
$RS=$db->get_one("SELECT FOUND_ROWS()");
$totalNum=$RS['FOUND_ROWS()'];
while( $rs=$db->fetch_array($query) ){
if(del_EndTimeInfo($rs)){ //自动删除过期信息
continue;
}
$rs[content]=@preg_replace('/<([^>]*)>/is',"",$rs[content]); //把HTML代码过滤掉
$rs[content]=get_word($rs[full_content]=$rs[content],100);
$rs[my_content1]=get_word($rs[full_content]=$rs[content],100);//20151006
$rs[title1]=get_word($rs[full_title1]=$rs[title1],33);
$rs[title]=get_word($rs[full_title]=$rs[title]);
if($rs['list']>$timestamp){
$rs[title]="<span>$rs[title]</span><img src='$webdb[www_url]/f/images/pc/ding.jpg' style='margin-left:3px;' border=0>";
}elseif($rs['list']>$rs[posttime]){
//置顶过期的信息,需要恢复原来发布日期以方便排序,放在后面
$db->query("UPDATE {$_pre}content$_erp SET list='$rs[posttime]' WHERE id='$rs[id]'");
}
if($rs[mysort1]==100){
$rs[title]="<span>$rs[title]</span><img src='$webdb[www_url]/f/images/pc/jing.jpg' style='margin-left:3px;' border=0>";
}elseif($rs[mysort1]==50){
$rs[title]="<span>$rs[title]</span><img src='$webdb[www_url]/f/images/pc/ding.jpg' border=0>";
}
if ($rs[my_zkl]>5){
$rs[my_zkl]=$rs[my_zkl]."折"."<img src='$webdb[www_url]/images/default/icotop.gif' border=0>";
}
if(!$rs[yhqID]== null){
$rs[title]="<span>$rs[title]</span><img src='$webdb[www_url]/f/images/pc/quan.jpg' style='margin-left:3px;' border=0>";
}
$times=$timestamp-$rs[posttime];
if(!$webdb[Info_list_cache]&&$times<3600){
$rs[times]=ceil($times/60).'分钟前';
}elseif(!$webdb[Info_list_cache]&&$times<3600*24){
$rs[times]=ceil($times/3600).'小时前';
}else{
$rs[times]=date("Y-m-d",$rs[posttime]);
}
if($rs[mysort1]<101||$rs['list']>$timestamp){
$rs[times]='今天';
}
$rs[times]='今天';//因为采集问题,全部设置为今天发帖
$rs[posttime]=date("Y-m-d",$rs[full_time]=$rs[posttime]);
if($rs[picurl]){
$rs[picurl]=tempdir($rs[picurl]);
}
$Module_db->showfield($field_db,$rs,'list');
$rs[url]="$city_url/f/bencandy.php?fid=$rs[fid]&id=$rs[id]&city_id=$rs[city_id]";
//处理店铺url 20151001
$rs[host]=$rs[host]?$rs[host]:"http://www.dazhedidai.com/home/?uid=".$rs[uid];
if($rs[distance] != '商家还未上传位置哟'){
if($rs[distance] > 1000){
$dis = $rs[distance] /1000;
$rs[distance] = '<span>距您</span><i>'.round($dis, 2) .'km</i>';
}else{
$rs[distance] = '<span>距您</span><i>'.$rs[distance] .'m</i>';
}
}else{
$rs[distance] = '<span>商家还未上传位置哟</span>';
}
$listdb[]=$rs;
}
return $listdb;
}
/**
*大分类
**/
function ListOnlySort(){
global $Fid_db,$module_DB,$fid,$city_id;
foreach($Fid_db[$fid] AS $key=>$value){
unset($rs);
$rs[name]=$value;
$rs[fid]=$key;
$rs[url]=get_info_url('',$rs[fid],$city_id);
$msconfig=$module_DB[$Fid_db[mid][$key]][field][sortid];
$detail=explode("\r\n",$msconfig[form_set]);
foreach( $detail AS $key2=>$value2){
$detail2=explode("|",$value2);
$url=get_info_url('',$rs[fid],$city_id,$zoneid,$streetid,array('sortid'=>"$detail2[0]"));
$rs[sortdb][]="<A HREF='$url'>$detail2[1]</A>";
}
$listdb[]=$rs;
}
return $listdb;
}
?>
5 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
$.ajax({
type: "post", //数据提交方式(post/get)
url: "demo.php", //提交到的url
data: {username:username,password:password},//提交的数据
dataType: "json",//返回的数据类型格式
success: function(msg){
...//返回成功的回调函数
},
error:function(msg){
...//返回失败的回调函数
}
});```
- 5 回答
- 0 关注
- 3192 浏览
添加回答
举报
0/150
提交
取消