资源描述:
《PHP项目经验总结一.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、学习、编写PHP一个月的时间,在项目中使用PHP,结合JS实现了一些功能。下面我将一一讲述在项目中遇到的一些比较棘手的问题和我的解决方法:案例一:动态实现机房设备定位效果。详细描述:首先我有一张3D的机房效果图,然后我从数据库里读取机房设备,然后加载在页面中(比如:未定义坐标的列表中,既3D效果图之外)。用户可以用鼠标对这些设备进行拖动,拖进3D效果图之内的设备,记录其坐标位置,然后点击保存按钮,保存进数据库。我在实现这个功能的时候,需要设计两个PHP页面,一个页面A用来进行编辑保存拖动的设备坐标,另外一个页面B用来进行展示已保存的左边的设备。先说页面A:1.首先要实
2、现拖动效果,于是我在网上找到一个如何实现拖动效果的JS,并对其进行了修改(下面红色部分为我修改的部分)。JS部分代码如下:Number.prototype.NaN0=function(){returnisNaN(this)?0:this;}variMouseDown =false;vardragObject =null;varcurTarget =null;functionmakeDraggable(item,item2,item3){if(!item)return;item.onmouseup=function(ev){dragObject=this;item2.v
3、alue=dragObject.style.top;item3.value=dragObject.style.left;}item.onmousedown=function(ev){dragObject =this;mouseOffset=getMouseOffset(this,ev);returnfalse;}}functiongetMouseOffset(target,ev){ev=ev
4、
5、window.event;vardocPos =getPosition(target);varmousePos =mouseCoords(ev);return{x:mouse
6、Pos.x-docPos.x,y:mousePos.y-docPos.y};}functiongetPosition(e){varleft=0;vartop =0;while(e.offsetParent){left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);top +=e.offsetTop +(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);e =e.of
7、fsetParent;}left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);top +=e.offsetTop +(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);//alert(left+","+top);return{x:left,y:top};}functionmouseCoords(ev){if(ev.pageX
8、
9、ev.pageY){return{x:
10、ev.pageX,y:ev.pageY};}return{x:ev.clientX+document.body.scrollLeft-document.body.clientLeft,y:ev.clientY+document.body.scrollTop -document.body.clientTop};}functionmouseDown(ev){ev =ev
11、
12、window.event;vartarget=ev.target
13、
14、ev.srcElement;if(target.onmousedown
15、
16、target.getAttribute('DragOb
17、j')){returnfalse;}}functionmouseUp(ev){dragObject=null;iMouseDown=false;}functionmouseMove(ev){ev =ev
18、
19、window.event;/*WearesettingtargettowhateveritemthemouseiscurrentlyonFirefoxusesevent.targethere,MSIEusesevent.srcElement*/vartarget =ev.target
20、
21、ev.srcElement;varmousePos=mo