如果要描圖的話 ?需要加載 相應(yīng)的地圖api 庫(kù) ? ?怎樣描點(diǎn)要根據(jù) api的格式 比如 , 我用baidu 的api ?需要的是數(shù)組格式
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、梁河網(wǎng)站維護(hù)、網(wǎng)站推廣。
那么代碼 是這樣的?
function?getGps_msg(cur_date){
var?rt_array=new?Array();
cur_phone_no=$("#user_list").val();
$.ajax({
type:"get",
url:"json_gps.php",
async:false,
dataType:"json",
data:{cur_date:cur_date,phone_no:cur_phone_no},
success:?function(msg){
for?(var?i=0;imsg.length;i++){
rt_array[String(i)]=msg[i];
}
}
});
return?rt_array;
}
得到你一個(gè)描點(diǎn)的數(shù)組了. 再去描點(diǎn)
function?drawPion(data_arr){
//var?data_arr=getGps_msg();
//alert?(data_arr);
bm.clearOverlays();
var?cx=data_arr['0']['longitude'];
var?cy=data_arr['0']['latitude'];
bm.centerAndZoom(new?BMap.Point(cx,cy),18);
var?dianshu=0;
for?(var?i=0;idata_arr.length;i++){
var? msg=data_arr[i]['rec_time'];
var???lab_msg="";
? var???xx=?data_arr[i]['longitude'];
? var???yy=?data_arr[i]['latitude'];
? //alert?(i);
var?markergps?=?new?BMap.Marker(new?BMap.Point(xx,yy));
//bm.addOverlay(markergps,i);?//添加GPS標(biāo)注
if?(dianshu==9){
bm.addOverlay(markergps,i);?//添加GPS標(biāo)注
dianshu=0;
}else{
dianshu++;
}
if(i==0){
//var?markergps?=?new?BMap.Marker(new?BMap.Point(xx,yy));
bm.addOverlay(markergps,i);?//添加GPS標(biāo)注
lab_msg="最后位置";
}
if(data_arr[i]['img_file_path']!==""){
//var?markergps?=?new?BMap.Marker(new?BMap.Point(xx,yy));
bm.addOverlay(markergps,i);?//添加GPS標(biāo)注
lab_msg+="[圖]";
var?sContent?="img?style='float:right;margin:4px'?id='imgDemo"+i+"'?src='"+data_arr[i]['img_file_path']+"'?width='320'?height='240'?title='photo'/";
?addClickHandler(sContent,markergps);
}
if?(i==data_arr.length-1){
//var?markergps?=?new?BMap.Marker(new?BMap.Point(xx,yy));
bm.addOverlay(markergps,i);?//添加GPS標(biāo)注
lab_msg="開始位置";
}
var?labelgps?=?new?BMap.Label(i+lab_msg,{offset:new?BMap.Size(20,-10)});
markergps.setLabel(labelgps,i);?//添加GPS標(biāo)注
}
}
得到效果?
這個(gè)很簡(jiǎn)單,給你舉一個(gè)例子吧,首先在包含js的頁面寫一個(gè):
script
language='javascript'
var
a='hello
word';//a
為要傳送的值
window.location.href="xxx/arget.php?insert="+a;//target為任意一個(gè)目標(biāo)文件用來接收這個(gè)變量a
/script
然后你在target.php文件中這樣寫:
?php
if(!empty($_GET['insert'])){
//
插入或者更新大數(shù)據(jù)庫(kù)就可以了
}
?
要用javascript調(diào)用php獲取數(shù)據(jù)庫(kù)接口,是一個(gè)很常見的前后端交互操作
通過javascript發(fā)送http請(qǐng)求php的API接口,php連接數(shù)據(jù)庫(kù)并查詢結(jié)果,最后返回出來
這樣javascript就能獲取到數(shù)據(jù)庫(kù)的數(shù)據(jù)
Node.JS 服務(wù)器可以在 后端 連接mysql,這時(shí)的情況和php是一樣的。
我從未見過前端JS直接連接mysql的,原因是:
(1)瀏覽器內(nèi)置的javascript 引擎一般只支持websocket,即基于http連接的套接字高層協(xié)議,而不是真正的socket,因此除非服務(wù)器端也開啟websocket服務(wù)并拆開套接字轉(zhuǎn)發(fā)到mysql,否則無法代理連接
(2)我見過的絕大多數(shù)mysql 服務(wù)器都工作在服務(wù)器環(huán)境下的一個(gè)虛擬子網(wǎng),換句話說,直接的遠(yuǎn)程3306端口是拒絕連接的,這樣可以隔絕端口直接攻擊
如果前段js直接可以連接后端服務(wù)器mysql的端口,那么就不叫B/S結(jié)構(gòu)了,而是C/S結(jié)構(gòu)(比如傳統(tǒng)的windows桌面程序),安全上有很多問題,所以大多數(shù)瀏覽器也不支持這個(gè)操作。
html
head
title智能遞歸菜單-讀取數(shù)據(jù)庫(kù)/title
style
TD {
FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; LINE-HEIGHT: 130%; letter-spacing:1px
}
A:link {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:visited {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:active {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:hover {
COLOR: #ff0000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: underline; letter-spacing:1px
}
.Menu {
COLOR:#000000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; CURSOR: hand
}
/style
script language=javascript
function ShowMenu(MenuID)
{
if(MenuID.style.display=="none")
{
MenuID.style.display="";
}
else
{
MenuID.style.display="none";
}
}
/script
/head
body
?php
//基本變量設(shè)置
$GLOBALS["ID"] =1; //用來跟蹤下拉菜單的ID號(hào)
$layer=1; //用來跟蹤當(dāng)前菜單的級(jí)數(shù)
//連接數(shù)據(jù)庫(kù)
$Con=mysql_connect("localhost","root","123456");
mysql_select_db("menu");
//提取一級(jí)菜單
$sql="select * from menu where parent_id=0";
$result=mysql_query($sql,$Con);
//如果一級(jí)菜單存在則開始菜單的顯示
if(mysql_num_rows($result)0) ShowTreeMenu($Con,$result,$layer,$ID);
//=============================================
//顯示樹型菜單函數(shù) ShowTreeMenu($con,$result,$layer)
//$con:數(shù)據(jù)庫(kù)連接
//$result:需要顯示的菜單記錄集
//layer:需要顯示的菜單的級(jí)數(shù)
//=============================================
function ShowTreeMenu($Con,$result,$layer)
{
//取得需要顯示的菜單的項(xiàng)目數(shù)
$numrows=mysql_num_rows($result);
//開始顯示菜單,每個(gè)子菜單都用一個(gè)表格來表示
echo "table cellpadding='0' cellspacing='0' border='0'";
for($rows=0;$rows$numrows;$rows++)
{
//將當(dāng)前菜單項(xiàng)目的內(nèi)容導(dǎo)入數(shù)組
$menu=mysql_fetch_array($result);
//提取菜單項(xiàng)目的子菜單記錄集
$sql="select * from menu where parent_id=$menu[id]";
$result_sub=mysql_query($sql,$Con);
echo "tr";
//如果該菜單項(xiàng)目有子菜單,則添加JavaScript onClick語句
if(mysql_num_rows($result_sub)0)
{
echo "td width='20'img src='tree_expand.gif' border='0'/td";
echo "td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'";
}
else
{
echo "td width='20'img src='tree_collapse.gif' border='0'/td";
echo "td class='Menu'";
}
//如果該菜單項(xiàng)目沒有子菜單,并指定了超級(jí)連接地址,則指定為超級(jí)連接,
//否則只顯示菜單名稱
if($menu[url]!="")
echo "a href='$menu[url]'$menu[name]/a";
else
echo $menu[name];
echo "
/td
/tr
";
//如果該菜單項(xiàng)目有子菜單,則顯示子菜單
if(mysql_num_rows($result_sub)0)
{
//指定該子菜單的ID和style,以便和onClick語句相對(duì)應(yīng)
echo "tr id=Menu".$GLOBALS["ID"]++." style='display:none'";
echo "td width='20'?/td";
echo "td";
//將級(jí)數(shù)加1
$layer++;
//遞歸調(diào)用ShowTreeMenu()函數(shù),生成子菜單
ShowTreeMenu($Con,$result_sub,$layer);
//子菜單處理完成,返回到遞歸的上一層,將級(jí)數(shù)減1
$layer--;
echo "/td/tr";
}
//繼續(xù)顯示下一個(gè)菜單項(xiàng)目
}
echo "/table";
}
?
?php
$id = 1;
function test()
{
global $id;
unset($id);
}
test();
echo"font class=menu".($id)."/font"; // 在 PHP 4 中這里會(huì)打印出 1
?
?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo "font class=menu".$b."/font";
?
/body
/html
呵呵,看咋樣,是遞歸出來的......