按<input style="cursor:hand;" class="button2" type="button" value="工號" name="btnTest" Title="選擇" OnClick="SelGen(0)"><input style="cursor:hand;" class="button2" type="button" value="姓名" name="B3" Title="選擇" OnClick="SelGen(1)"><input style="cursor:hand;" class="button2" type="button" value="部門" name="B3" Title="選擇" OnClick="SelGen(2)"><input style="cursor:hand;" class="button2" type="button" value="職務" name="B3" Title="選擇" OnClick="SelGen(3)">排序
<select id="GenSel" size="10" style="font-family: 細明體; font-size: 9pt; height: 450; width:100%" multiple>
<option value="000387|魏秀瓊|品保部|主管">000387|魏秀瓊|品保部|主管</option>
<option value="000195|高緒軍|品保部|員工">000195|高緒軍|品保部|員工</option>
<option value="002341|閻花藏|市場部|員工">002341|閻花藏|市場部|員工</option>
<option value="003232|鄭光娥|銷售部|經理">003232|鄭光娥|銷售部|經理</option>
</select>
<script language="javascript">
Array.prototype.cnsort = function(){//此處做排序處理
return this.sort();
}function SelGen(index){
var select = document.getElementById("GenSel");
var tempArray = new Array();
var keyArray = new Array();
var length = select.options.length;
for(i=0;i<length;i++){
var item = select.options[0].value;
var arrKey = item.split("|");
var key = arrKey[index];
keyArray[i] = key+i;
tempArray[key.toString()+i] = item;
select.options.remove(0);
}
keyArray = keyArray.cnsort();
for(i=0;i<keyArray.length;i++){
var value = tempArray[keyArray[i]];
select.options.add(new Option(value,value));
}
}
</script>
<select id="GenSel" size="10" style="font-family: 細明體; font-size: 9pt; height: 450; width:100%" multiple>
<option value="000387|魏秀瓊|品保部|主管">000387|魏秀瓊|品保部|主管</option>
<option value="000195|高緒軍|品保部|員工">000195|高緒軍|品保部|員工</option>
<option value="002341|閻花藏|市場部|員工">002341|閻花藏|市場部|員工</option>
<option value="003232|鄭光娥|銷售部|經理">003232|鄭光娥|銷售部|經理</option>
</select>
<script language="javascript">
Array.prototype.cnsort = function(){//此處做排序處理
return this.sort();
}function SelGen(index){
var select = document.getElementById("GenSel");
var tempArray = new Array();
var keyArray = new Array();
var length = select.options.length;
for(i=0;i<length;i++){
var item = select.options[0].value;
var arrKey = item.split("|");
var key = arrKey[index];
keyArray[i] = key+i;
tempArray[key.toString()+i] = item;
select.options.remove(0);
}
keyArray = keyArray.cnsort();
for(i=0;i<keyArray.length;i++){
var value = tempArray[keyArray[i]];
select.options.add(new Option(value,value));
}
}
</script>
解决方案 »
- 解析xml 在IE下是对的 在Chrom下是错的 为什么???
- 这种效果怎么做?请高手赐教
- Javascript版泡泡龙,经典重现!
- 梅花雪(tree)单选框选不中的问题,请高手赐教,分不多,拜谢!
- 用单选按钮的单选事件来让层显示不同内容
- javascript究竟要如何学?
- 一个 js 文件主调用另一个js 文件的方法
- <script src=...后面能不能接受客户端脚本的变量,在线急求!!!
- 如何保证我用window.open打开的窗口不被别人替换掉?---在线等待
- 我要在javascript的一个事件中引用另一个事件中定义的变量,怎样定义该变量,使它为全局呢?
- 在线等,急问
- 問個$F的問題
按顺序取出各个字符,将之转换为对应的拼音字符串,例如
"中国"=>"ZG"
然后根据这个拼音字符串来做排序。
如何根据汉字得到拼音,可以用字典也可以用其他方法,代码就不写了。
//------------------------取汉字拼音的第一个字母-----------------------
function get_pinyin_first_char($source_str, $mode='c'){
$mode=strtolower($mode);
if($mode!='c' and $mode!='s'){
$mode='c'; //默认为取串首拼音索引
}
$nLen=strlen($source_str); //字串长度
$byFlag=0; //汉字标志:0英文字符,1汉字第1字节,2汉字第2字节
$hzcode=0; //汉字内码
$result='';
for($i=0;$i<$nLen;$i++){
$ch=ord(substr($source_str,$i,1)); //取一个字节的ascii码
if($ch > 0x80){ //汉字字符
$byFlag++;
}else{
if($byFlag==1){ //半个汉字
$result.='?';
}
$byFlag=0; //清除标志
$hzcode=0;
}
switch($byFlag){
case 0 : $result.=chr($ch); break; //英文字符
case 1 : //汉字第1字节
if( $i < $nLen - 1 ){ //非输入字串结束
$hzcode=$ch;
}else{ //输入字串结束
$result.='?';
}
break; case 2 : //汉字第2字节
$byFlag=0; //清除标志
$hzcode=($hzcode<<8)+$ch; //汉字内码
switch($hzcode){
case $hzcode>=0xB0A1 and $hzcode<=0xB0C4 : $result.='A'; break;
case $hzcode>=0xB0C5 and $hzcode<=0xB2C0 : $result.='B'; break;
case $hzcode>=0xB2C1 and $hzcode<=0xB4ED : $result.='C'; break;
case $hzcode>=0xB4EE and $hzcode<=0xB6E9 : $result.='D'; break;
case $hzcode>=0xB6EA and $hzcode<=0xB7A1 : $result.='E'; break;
case $hzcode>=0xB7A2 and $hzcode<=0xB8C0 : $result.='F'; break;
case $hzcode>=0xB8C1 and $hzcode<=0xB9FD : $result.='G'; break;
case $hzcode>=0xB9FE and $hzcode<=0xBBF6 : $result.='H'; break;
case $hzcode>=0xBBF7 and $hzcode<=0xBFA5 : $result.='J'; break;
case $hzcode>=0xBFA6 and $hzcode<=0xC0AB : $result.='K'; break;
case $hzcode>=0xC0AC and $hzcode<=0xC2E7 : $result.='L'; break;
case $hzcode>=0xC2E8 and $hzcode<=0xC4C2 : $result.='M'; break;
case $hzcode>=0xC4C3 and $hzcode<=0xC5B5 : $result.='N'; break;
case $hzcode>=0xC5B6 and $hzcode<=0xC5BD : $result.='O'; break;
case $hzcode>=0xC5BE and $hzcode<=0xC6D9 : $result.='P'; break;
case $hzcode>=0xC6DA and $hzcode<=0xC8BA : $result.='Q'; break;
case $hzcode>=0xC8BB and $hzcode<=0xC8F5 : $result.='R'; break;
case $hzcode>=0xC8F6 and $hzcode<=0xCBF9 : $result.='S'; break;
case $hzcode>=0xCBFA and $hzcode<=0xCDD9 : $result.='T'; break;
case $hzcode>=0xCDDA and $hzcode<=0xCEF3 : $result.='W'; break;
case $hzcode>=0xCEF4 and $hzcode<=0xD188 : $result.='X'; break;
case $hzcode>=0xD1B9 and $hzcode<=0xD4D0 : $result.='Y'; break;
case $hzcode>=0xD4D1 and $hzcode<=0xD7F9 : $result.='Z'; break;
default : $result.='?'; break;
}
break;
}
if($mode=='c' and $result!=''){
break;
}
}
return $result;
}