星期三 少云转晴 2~13℃
js处理重复代码
想解决的问题:避免重复代码。
如下,每个 li 的 onmouseover 和 onmouseout 事件一样:
<li id="city_0" onclick="selectCity(‘hangzhou’,0)" onmouseover="this.className=’jsOver’" onmouseout="this.className=’jsOut’">杭州</li>
<li class="cityPice">|</li>
<li id="city_1" onclick="selectCity(‘shanghai’,1)" onmouseover="this.className=’jsOver’" onmouseout="this.className=’jsOut’">上海</li>
用 js 输出:
<script type="text/javascript">
var cityTxt = ["hangzhou","shanghai"];
var cityTxtName = ["杭州","上海"];
for(i=0; i<cityTxt.length; i++){
document.write("<li id=\"city_"+i+"\" onclick=\"selectCity(‘"+cityTxt[i]+"’,"+i+")\" onmouseover=\"this.className=’jsOver’\" onmouseout=\"this.className=’jsOut’\">"+cityTxtName[i]+"</li>");
if(i != cityTxt.length-1){
document.write("<li class=\"cityPice\">|</li>");
}
}
</script>
php用数组来处理多个if…elseif…
Ryan 教的方法。
if($city==’hangzhou’){
$cityName = "杭州";
} elseif ($city==’shanghai’){
$cityName = "上海";
}
用数组处理:
$cityArr = array("hangzhou"=>"杭州","shanghai"=>"上海");
$cityName = $cityArr[$city];
SQL批量替换部分字符串
说明:
update table[表名] set Fields[字段名] = replace(Fields[字段名],’被替换原内容’,'要替换成的内容’)
实例:
update uh_blogfield set tag = replace(tag,’s:16:"杭州_器材店"’,'s:19:"杭州_器材卖场"’)
参考:http://HI.BAIDU.com/wellme/blog/item/39db17465149f20a6b63e50e.html
相关日志:批量修改 SQL 字段的方法(这里记录的是批量替换字段的所有字符)
uch2.0 "uh_blogfield" 表下的 tag 字段说明
以前一直看不懂这个字段的组成结构,今天测试替换字符串时总算看懂了。
下面是 tag 字段的一个例子:
a:3:{i:1;s:19:"杭州_全部场馆";i:13;s:16:"杭州_器材店";i:14;s:13:"杭州_其他";}
a:3
说明:一共有三个tag
i:1;s:19:"杭州_全部场馆"
说明:i 代表 tag 的 id,s 代表 tag 的字符长度(一个中文占三个字节),双引号里的是 tag 名称
附加说明:如果修改了表 "uh_tag" 的 tagname,并且新的 tagname 字符长度与旧的不一样的话,批量修改表 "uh_blogfield" 的 tag 字段时,要把 s 的值也一并修改,如下:
update uh_blogfield set tag = replace(tag,’s:16:"杭州_器材店"’,'s:19:"杭州_器材卖场"’)
如果没有一并修改 s 值,则该条记录的 tag 字段将读取失败。
友吧今天
uh_tag 表增加 city 字段,以便按城市获取 tag。
限制了场馆标签的最多可选数量。
用户分享的馆场默认为“待审核”“不允许评论”,通过审核后用户如果再次修改,则需要重新审核。
……
今天处理了不少零碎问题,尤其是城市关联方面的逻辑更加清晰明了了。