再现理想 发表于 2015-2-16 00:22:10

PHP网站制作之PHP实例代码:仿照百度搜刮时输出内容带...

看到好的帖子最好up一下,以使得更多的人得到分享。   </p> 本人用PHP + js仿照的百度搜刮时输出内容带提醒的功效,运转的话需求PHP情况。也算是本人的一个练笔题吧,和人人分享一下
<?php
      $aName = array("王成","王瑞","王祥","何武昌","何睿","何好","马兴","马成栋","张相","张祥");
      $aId = array(88801,11144,2345,9023,12415,88021,11145,2344,11145,0376);
      foreach($aName as $k =>$val)
      {
                $json[$k] = array(
                        'id' => $aId[$k],
                        'name' => $val
                );      
      }
/**************************************************************
*
*利用特定function对数组中一切元素做处置
*@paramstring&$array   要处置的字符串
*@paramstring$function   要履行的函数
*@return boolean $apply_to_keys_also   是不是也使用到key上
*@access public
*
*************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
      die('possible deep recursion attack');
    }
    foreach ($array as $key => $value) {
      if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
      } else {
            $array[$key] = $function($value);
      }
      if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
      }
    }
    $recursive_counter--;
}
/**************************************************************
*
*将数组转换为JSON字符串(兼容中文)
*@paramarray   $array      要转换的数组
*@return string      转换失掉的json字符串
*@access public
*
*************************************************************/
function JSON($array) {
    arrayRecursive($array, 'urlencode', true);
    $json = json_encode($array);
    return urldecode($json);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
      <meta content="text/html;charset=gb2312" http-equiv="content-type" />
         <style type="text/css">
                .name{cursor:pointer;}
                .selected{background:#CCC;}
                .normal{background:#FFF;}
    </style>
</head>
<table align="center">
      <tr>
            <td>输出测试:</td>
      <td><input type="text" style="color:" id="neirong" onkeyup="tip(event,0)"/></td>
    </tr>
</table>
<div id="showMessage" style="border:1px #666 solid;">
</div>
<script type="text/javascript">
      window.onload = function(){
                var tag = document.getElementById("showMessage");
                tag.style.display = "none";
      }
      function tip(event) {
                var aUserName = new Array();
                var aTempName, aUserName, tag, sVal, sHtml, mesTag, selectedTag, didTag, widths;
                var postion = new Array();
                var sId = 0;//用于给每一个名字加一个id的按次
                var whichType;//用户输出的类型,是数字呢仍是中文。
                aUserName = <?php echo JSON($json); ?>;
                //aUserName = eval('(' + aTempName + ')');
                tag = document.getElementById("neirong");
                didTag = document.getElementById("did");
                //输出框坐标获得
                postion = getElementPos(tag);
      
                //显示div坐标调剂
                mesTag = document.getElementById("showMessage");
                mesTag.style.position = "absolute";
                mesTag.style.left = postion
                mesTag.style.top = postion;
                widths = tag.style.width + "px";
                mesTag.width = widths;
                var event = event window.event;
                var sKeyCode = event.keyCode;
                var aShangXia = new Array(37,38,39,40);
                var isDerection;
                sVal = tag.value;
                //以enter作为用户输出停止标记
                if(13!=sKeyCode) {
                        for(var i in aShangXia) {
                              if(sKeyCode == aShangXia) {
                                        isDerection = false;      
                                        break;
                              }      
                              else {
                                        isDerection = true;      
                              }
                        }
                        if(isDerection) {
                              sHtml = '';
                              if(""==sVal) {
                                        mesTag.style.display = "none";
                                        mesTag.innerHTML = sHtml;
                                        return false;      
                              }
                              else {                              
                                        sHtml = '<table width="146px" border="0" id="showTable">';
                                        if(checkVal(sVal)) {
                                                for(var i in aUserName)
                                                {
                                                      if(0<=aUserName.id.indexOf(sVal)) {
                                                                sHtml = sHtml + '<tr><td class="normal" onclick="clickToChoice('+sId+')" onmou搜索引擎优化ver="changeColor(true,'+sId+')" onmou搜索引擎优化ut="changeColor(false,'+sId+')" id="p_'+sId+'" readonly="readonly">'+aUserName.id+'_'+aUserName.name+'</td></tr>';
                                                                sId = sId + 1;
                                                      }
                                                }      
                                        }
                                        else {
                                                for(var i in aUserName)
                                                {      
                                                      if(0<=aUserName.name.indexOf(sVal)) {
                                                                sHtml = sHtml + '<tr><td class="normal" onclick="clickToChoice('+sId+')" onmou搜索引擎优化ver="changeColor(true,'+sId+')" onmou搜索引擎优化ut="changeColor(false,'+sId+')" id="p_'+sId+'" readonly="readonly">'+aUserName.id+'_'+aUserName.name+'</td></tr>';
                                                                sId = sId + 1;
                                                      }
                                                }
                                        }
                                        sHtml = sHtml + '</table>';
                                        if(0!=sId) {               
                                                mesTag.style.display = "";
                                                mesTag.innerHTML = sHtml;
                                                sHtml = '';      
                                        }
                                        else {
                                                mesTag.innerHTML = '没有了局';      
                                        }
                              }
                        }
                        else
                        {
                              if(38==sKeyCode40==sKeyCode) {
                                        dance(sKeyCode,sVal,tag);
                              }               
                        }      
                }
                else {
                        if(''!=tag.value) {
                              mesTag.innerHTML = '';
                              showMessage.style.display = 'none';
                        }
                        else {
                              return false;      
                        }      
                }
      }
         function checkVal(sVal){
                var patrn = /^/;      
                if(patrn.exec(sVal)) {
                        return true;
                }
                else {
                        return false;      
                }
      }
      //获得用户经由过程点击的名字
      function clickToChoice(sqnm) {
                var choicedTag, mesTag, showTag;
                choicedTag = document.getElementById("p_"+sqnm);
                mesTag = document.getElementById("neirong");
                showTag = document.getElementById("showTable");
                mesTag.value = choicedTag.innerHTML;
                showMessage.style.display = 'none';
      }
               
      function dance(sKeyCode,sVal,tag) {
                var danceTag = getElementsByClassName("normal");//这个是正常的行
                var danceingTag = getElementsByClassName("selected");//这个是前一个被选中的行
                var selectedTag, lastTag, showTag, selectedVal, currentNum, initial;
                var rowNums, selectedNum = 0;
                var danceLen = danceTag.length;
                if(0 != danceingTag.length) {
                        showTag = document.getElementById("showTable");
                        rowNums = showTag.rows.length;
                        currentNum = danceingTag.id.split("_") * 1;
                        switch(sKeyCode) {
                              case 40:
                                        if(rowNums == (currentNum + 1)) {
                                                selectedNum = 0;      
                                        }               
                                        else {
                                                selectedNum = currentNum + 1;
                                        }
                                        break;
                              case 38:
                                        if(0 == currentNum ) {
                                                selectedNum = rowNums - 1;      
                                        }               
                                        else {
                                                selectedNum = currentNum - 1;
                                        }
                                        break;
                        }
                }
                else {
                        switch(sKeyCode) {
                              case 40:
                                        currentNum = danceTag.length - 1;
                                        selectedNum = 0;
                                        break;
                              case 38:
                                        currentNum = 0;
                                        selectedNum = danceTag.length - 1;      
                                        break;
                        }      
                }
               
                lastTag      = document.getElementById("p_"+currentNum);      
                lastTag.className = "normal";
                selectedTag = document.getElementById("p_"+selectedNum);      
                selectedVal = selectedTag.innerHTML;
                selectedTag.className = "selected";
                tag.value = selectedVal;
                              
      }
      function changeColor(type,sqnm) {
                var tag = document.getElementById("p_"+sqnm);
                if(type) {
                        tag.className = "selected";
                }
                else {
                        tag.className = "normal";      
                }      
      }
      
      function getElementsByClassName(n) {
                var classElements = [],allElements = document.getElementsByTagName('*');
                for (var i=0; i< allElements.length; i++ )
                {
                        if (allElements.className == n ) {
                              classElements = allElements; //某类纠合
                        }
                }
                        return classElements;
      }
         
      function getElementPos(tag) {
                var ua = navigator.userAgent.toLowerCase();
                var isOpera = (ua.indexOf('opera') != -1);
                var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
                if (tag.parentNode === null tag.style.display == 'none') {
                        return false;
                }
                var parent = null;
                var pos = [];
                var box;
                if (tag.getBoundingClientRect)
                {
                        box = tag.getBoundingClientRect();
                        var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
                        var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
                        pos = box.left + scrollLeft + "px";
                        pos = box.bottom +scrollTop + "px";
                        return pos;
                }
      }
</script>
</body>
</html>
实现固定数量的几张图片的上传;再如调试软件ZendStudio的使用,看了很多次老师的应用,但总感觉用的不顺手,不懂那么多的数据值,到底哪一个才是真正的问题所在;还有如数据库语句的封装,我只会用简单的函数来进行封装。

冷月葬花魂 发表于 2015-2-16 00:22:33

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

若相依 发表于 2015-3-1 23:59:37

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

飘飘悠悠 发表于 2015-3-11 01:06:02

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

山那边是海 发表于 2015-3-17 17:11:00

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

第二个灵魂 发表于 2015-3-23 18:13:16

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

只想知道 发表于 2015-3-27 00:51:05

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

海妖 发表于 2015-4-12 14:51:12

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

飘灵儿 发表于 2015-4-17 10:25:51

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

灵魂腐蚀 发表于 2015-4-21 07:55:00

本文当是我的笔记啦,遇到的问题随时填充

谁可相欹 发表于 2015-4-24 16:50:22

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

深爱那片海 发表于 2015-5-3 02:08:50

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

分手快乐 发表于 2015-5-11 11:33:25

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

精灵巫婆 发表于 2015-6-11 17:07:02

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

愤怒的大鸟 发表于 2015-6-25 09:14:16

做为1门年轻的语言,php一直很努力。

小妖女 发表于 2015-7-9 17:00:23

实践是检验自己会不会的真理。

莫相离 发表于 2015-7-13 20:29:50

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

变相怪杰 发表于 2015-7-13 21:04:54

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

兰色精灵 发表于 2015-7-16 19:03:28

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
页: [1]
查看完整版本: PHP网站制作之PHP实例代码:仿照百度搜刮时输出内容带...