猿问

AJAX为什么返回的是整个页面的HTML?

代码如下:

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;
}

?>
翻过高山走不出你
浏览 3193回答 5
5回答

忽然笑

猜测是不是直接去请求list.php静态文件了而且又是get。不知道你能不能把数据的接口跟页面的分开。

莫回无

给个dataType:xxx啦 dataType表示你希望给服务器回复给你的 是什么类型的数据 如果你不给 他就给你默认了

拉风的咖菲猫

有一种可能是后台出错了 返回的是dubeg页面

侃侃无极

$.ajax({ type: "post", //数据提交方式(post/get) url: "demo.php", //提交到的url data: {username:username,password:password},//提交的数据 dataType: "json",//返回的数据类型格式 success: function(msg){ ...//返回成功的回调函数 }, error:function(msg){ ...//返回失败的回调函数 } });```
随时随地看视频慕课网APP
我要回答