这几天有时间都在弄这个东西,为了提升客户使用感受。这个是SRT项目的一部分。
我把客户端代码放上来给大家参考。
XML/HTML代码
- <!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>添加语料库</title>
- <link rel='stylesheet' type='text/css' href='/Tpl/default/Public/css/admin.css' />
- </head>
- <body>
- <div id="title">添加语料库</div>
- <hr width="600px" align="left" />
- <script type='text/javascript' src='/Tpl/default/Public/js/jquery-1.2.6.pack.js'></script>
- <style type="text/css">
- <!--
- .selected {
- background:#CDEB8B;
- }
- #popup ur {
- margin:0px;
- padding:0px;
- }
- #popup li {
- margin:0px;
- padding:1px;
- line-height:20px;
- list-style:none;
- }
- -->
- </style>
- <script type="text/javascript">
- <!--
- var astr=Array('source','category','storetype','signalpath','recordingenv','language','place','application');
- var ct=[["my","thu","sun","microsoft"],["music"],["mp3","bits","mu","wma","ape"],["\u7535\u8bdd","none","phone","line"],["\u5f55\u97f3\u5ba4","mic"],["cn","en"],["home","in brain","new"],["\u60f3\u50cf","play","pok","listen"]];
- var index=0;
- var first=0;
- var maxindex=0;
- var oldstr='!old';
- function getlist(str,kw){
- var i=0;
- for(i=0;i<8;i++){
- if(str==astr[i]){
- break;
- }
- }
- if(i==8){
- return Array();
- }else{
- var k=0;
- var j=0;
- var d=Array();
- for(k=0;k<ct[i].length;k++)
- {
- if(ct[i][k].substr(0,kw.length)==kw){
- d[j++]=ct[i][k];
- }
- }
- return d;
- }
- }
- function getfocus(obj){
- if(first==0){
- var pu=$("#popup");
- var offset=$(obj).offset();
- pu.css('top', offset.top+$(obj).height()+6);
- pu.css('left',offset.left);
- pu.css('width', $(obj).width()+4);
- index=0;
- first=1;
- oldstr='!old';
- oc(obj);
- }
- }
- function lostfocus(){
- $("#popup").hide();
- first=0;
- }
- function oku(event,obj){
- var e=event;
- keyCode=e.keyCode;
- if(keyCode==38){
- if(index>0){
- index--;
- var o=$(".selected");
- o.removeClass('selected');
- o.prev().addClass('selected');
- }
- }else if(keyCode==40){
- if(index<maxindex){
- index++;
- var o=$(".selected");
- o.removeClass('selected');
- o.next().addClass('selected');
- }
- }else if(keyCode==13){
- var str=$(obj).attr('value');
- var strstra=str.split(',');
- var newstr='';
- for(i=0;i<stra.length-1;i++){
- newstrnewstr=newstr+stra[i]+',';
- }
- newstrnewstr=newstr+$(".selected").text();
- $(obj).attr('value', newstr);
- oc(obj);
- }else{
- oc(obj);
- }
- }
- function oc(obj){
- var str=$(obj).attr('value');
- var strstra=str.split(',');
- str=stra[stra.length-1];
- if(str!=oldstr){
- if(str.length==0)index=0;
- var cstr=obj.substr(1,obj.length-5);
- d=getlist(cstr,str);
- maxindex=d.length-1;
- if(index>maxindex)index=maxindex;
- h='<ur>';
- for(i=0;i<d.length;i++){
- if(i==index)
- hh=h+'<li class="selected">'+d[i]+'</li>';
- else
- hh=h+'<li>'+d[i]+'</li>';
- }
- hh=h+'</ur>';
- $("#popup").html(h);
- oldstr=str;
- }
- if(first){
- $("#popup").slideDown('fast');
- }
- }
- function st(){
- $("#addform").submit();
- return false;
- }
- -->
- </script>
- <div>对于 来源、类型、存储格式、信道、录音环境、语种、存放位置、应用,<br />都可用“,”(逗号)分隔多个条目。</div>
- <div id='popup' style='position:absolute;background:#EEEEEE;border: 1px solid #CCCCCC;font-size:14px;cursor: default;display:none;filter:alpha(opacity=80);z-index:20000'></div>
- <div id="form">
- <form id="addform" method="post" action="/index.php/Admin/savelib" onsubmit="return false;">
- <input id="libid" name="libid" value="na" type="hidden" />
- <input type="hidden" name="status" value="1" />
- <input name="isnew" type="hidden" value="true" />
- <table>
- <tr>
- <td class="tdleft"><label for="libname">名称</label></td><td><input id="libname" name="libname" type="text" /></td>
- <td class="tdleft"><label for="sourcename">来源</label></td><td><input id="sourcename" name="sourcename" type="text" onkeyup="oku(event,'#sourcename');" onfocus="getfocus('#sourcename');" onblur="lostfocus();" autocomplete="off" /></td>
- </tr>
- <tr>
- <td class="tdleft"><label for="ctime">发布日期</label></td><td><input id="ctime" name="ctime" type="text" value="2008-10-25" /></td>
- <td class="tdleft"><label for="categoryname">类型</label></td><td><input id="categoryname" name="categoryname" type="text" onkeyup="oku(event,'#categoryname');" onfocus="getfocus('#categoryname');" onblur="lostfocus();" autocomplete="off" /></td>
- </tr>
- <tr>
- <td class="tdleft"><label for="samplerate">采样率</label></td><td><input id="samplerate" name="samplerate" type="text" />(整数)</td>
- <td class="tdleft"><label for="samplebits">量化位数</label></td><td><input id="samplebits" name="samplebits" type="text" />(整数)</td>
- </tr>
- <tr>
- <td class="tdleft"><label for="tracks">声道</label></td><td><input id="tracks" name="tracks" type="text" />(整数)</td>
- <td class="tdleft"><label for="storetypename">存储格式</label></td><td><input id="storetypename" name="storetypename" type="text" onkeyup="oku(event,'#storetypename');" onfocus="getfocus('#storetypename');" onblur="lostfocus();" autocomplete="off" /></td>
- </tr>
- <tr>
- <td class="tdleft"><label for="signalpathname">信道</label></td><td><input id="signalpathname" name="signalpathname" type="text" onkeyup="oku(event,'#signalpathname');" onfocus="getfocus('#signalpathname');" onblur="lostfocus();" autocomplete="off" /></td>
- <td class="tdleft"><label for="recordingenvname">录音环境</label></td><td><input id="recordingenvname" name="recordingenvname" type="text" onkeyup="oku(event,'#recordingenvname');" onfocus="getfocus('#recordingenvname');" onblur="lostfocus();" autocomplete="off" /></td>
- </tr>
- <tr>
- <td class="tdleft"><label for="languagename">语种</label></td><td><input id="languagename" name="languagename" type="text" onkeyup="oku(event,'#languagename');" onfocus="getfocus('#languagename');" onblur="lostfocus();" autocomplete="off" /></td>
- <td class="tdleft"><label for="speaker">说话人</label></td><td><input id="speaker" name="speaker" type="text" /></td>
- </tr>
- <tr>
- <td class="tdleft"><label for="size">数据大小</label></td><td><input id="size" name="size" type="text" /></td>
- <td class="tdleft"><label for="price">价格</label></td><td><input id="price" name="price" type="text" /></td>
- </tr>
- <tr>
- <td class="tdleft"><label for="placename">存放位置</label></td><td><input id="placename" name="placename" type="text" onkeyup="oku(event,'#placename');" onfocus="getfocus('#placename');" onblur="lostfocus();" autocomplete="off" /></td>
- <td class="tdleft"><label for="applicationname">应用</label></td><td><input id="applicationname" name="applicationname" type="text" onkeyup="oku(event,'#applicationname');" onfocus="getfocus('#applicationname');" onblur="lostfocus();" autocomplete="off" /></td>
- </tr>
- <tr><td class="tdleft">介绍</td><td colspan="3"><!-- 编辑器调用开始 --><script type="text/javascript" src="/Public/Js/FCKeditor/fckeditor.js"></script><textarea id="editor" name="intro"></textarea><script type="text/javascript"> var oFCKeditor = new FCKeditor( "editor","500px","250px" ) ; oFCKeditor.BasePath = "/Public/Js/FCKeditor/" ; oFCKeditor.ReplaceTextarea() ;function resetEditor(){setContents("editor",document.getElementById("editor").value)}; function saveEditor(){document.getElementById("editor").value = getContents("editor");} function InsertHTML(html){ var oEditor = FCKeditorAPI.GetInstance("editor") ;if (oEditor.EditMode == FCK_EDITMODE_WYSIWYG ){oEditor.InsertHtml(html) ;}else alert( "FCK必须处于WYSIWYG模式!" ) ;}</script> <!-- 编辑器调用结束 --></td></tr>
- <tr><td colspan="4" align="center"><input type="button" onclick="st();" value="添加" /> <input type="reset" value="重置" /></td></tr>
- </table>
- </form>
- </div>
- <hr />
- <script type="text/javascript">
- <!--
- function upload(){
- document.getElementById("uploadbutton").disabled=true;
- $("#uploadform").submit();
- return true;
- }
- -->
- </script>
- 样例上传:
- <span id="info">
- 请选择文件上传。
- </span>
- <div id="upload">
- <form id="uploadform" method="post" action="/index.php/Admin/upload/" enctype="multipart/form-data" target="iframeUpload">
- <input type="hidden" id="c" name="c" value="0" /><input id="ulibid" name="libid" value="na" type="hidden" />
- <input type="file" id="file" name="file" size="60" /> <input id="uploadbutton" type="submit" value="上传" onclick="upload();" />
- </form>
- <iframe name="iframeUpload" src="" width="600" height="35" frameborder="0" SCROLLING="no" style="display:none;"></iframe>
- </div>
- <div id="filelist">
- 已经上传的文件:<br />
- </div>
- </body>
- </html>

