• sentilib_语料库项目_search模块的实现


    1,搜索表单#searchForm做好准备

    2,js 将表单数据序列化并传送给“控制器”

    3,控制器 添加$actions=word_search

    4,  words类 添加方法 searchWords

    5,js 将返回的数据放入网页相应的DIV #word_list_searched

    6,js 让 DIV #word_list_searched 先隐藏,用户点击搜索后再出现


    搜索前




    搜索后




    1,搜索表单#searchForm做好准备

    <form class="form-horizontal" id="searchForm">
            <fieldset>
    			<div class="control-group span3">
    				  <!-- Search input-->
    				  <div class="controls">
    				    <input id="searchbox" placeholder="请输入您要查询的词语" class="input" type="text" name="keyword">
    				  </div>
    			</div>
    
    			<div class="control-group span3">
    				    <div class="controls">
    					  <!-- Inline Radios -->
    					  <label class="radio inline">
    						<input checked="checked" value="1" name="group" type="radio">
    						中文
    					  </label>
    					  <label class="radio inline">
    						<input value="2" name="group" type="radio">
    						英文
    					  </label>
    		  			</div>
    			</div>
    			<div class="control-group span2">
    				  <!-- Button -->
    				  <div class="controls">
                      <!-- 这句话非常重要,是Ajax提交数据时,指定action的  -->
                      <input type="hidden" name="action" value="word_search" />
    				    <button class="btn btn-success" type="submit">查询</button>
    				  </div>
    			</div>
    
    			</fieldset>
    		  </form>

    注意2点:

    1,表单数据序列化的格式是 keyword=%E5%93%88&group=1&action=word_search

         其中 keyword ,group , action  都是 各个input标签的 name 属性;因此name 属性一定要设置

    2,

    <input type="hidden" name="action" value="word_search" />

    这行代码指定了 动作 action 为 word_search



    2,js 将表单数据序列化并传送给“控制器”


    $("#searchForm button").live("click", function(event){
                //必须有这下面这行,否则.ajax方法将无法成功调用
                event.preventDefault();
                var formData = $(this).parents("form").serialize();
                $.ajax({
                   type: "POST",
                   url: processFile,
                   data: formData,
                   success: function(data) {
                   },
                    error: function(msg)
                    {
                            alert(msg);
                    }
                });
       });

    3,控制器 添加

    $actions=array(

    'word_search' => array(
                      'object' => 'Words',
                      'method' => 'searchWords'
               )

    )


    4,  words类 添加方法 searchWords

    public function searchWords()
    {   
    	    $keyword = htmlentities($_POST['keyword'], ENT_QUOTES,"UTF-8");
        	    $group = htmlentities($_POST['group'], ENT_QUOTES,"UTF-8");
                $words = $this->processSearch($keyword,$group);
                $i=0;
                $tab_str="<table class='table table-striped table-bordered table-hover table-condensed' align='center'>";
                $tab_str.="<thead><td><i class='icon-search'></i></td><td>词语</td><td>词性</td><td>倾向值[-3,3]</td><td>词语类别</td><td>编辑</td></thead>";
    
                foreach ( $words as $key => $word )
                {   
                        $i++;
                        $labels=NULL;
                        $labels.="<tr>";
                        $labels.="<td width=5%>".$i."</td>";
                        
                        //词语
                        $link = "<a class='need_model' href='view.php?word_id=".$word['word_id']."'>".$word['word']."</a>";
                        $labels.="<td width='35%'>".$link."</td>";
                        
                        //词性:1,褒贬词;2,程度副词
                        $senti_type=($word[senti_type]===1)?"褒贬词":"程度副词";
                        $labels.="<td width='15%'>".$senti_type."</td>";
                        
                        //倾向值:-3~3
                        $labels.="<td width='15%'>".$word[senti_value]."</td>";
                        
                        //中英文:1,中文;2,英文
                        $word_type=($word[word_type]==1)?"中文":"English";
                        $labels.="<td width='15%'>".$word_type."</td>";
                        
                        //编辑链接
                        $link2 = "<a class='need_model' href='view.php?word_id=".$word['word_id']."'>编辑</a>";
                        $labels.="<td width='15%'>".$link2."</td>";
                        $tab_str.=$labels;
                    
                }
                
                $tab_str.="</table>";
                echo $tab_str;
    
    	}
    public function processSearch($keyword=NULL,$group=NULL)
        {
            
            //这里暂时还没有做数据库分页
            $sql = "SELECT `word_id`, `word`, `senti_type`,`senti_value`, `word_type` FROM `words_table` WHERE  1=1 ";
            
            if ( !empty($keyword) ){
                $sql .= " and `word` like '%".$keyword."%'";
            }
        
            if ( !empty($group) ){
                $sql .= " and `word_type`=".$group;
            }
        
            $sql.=" limit 1,5";
    
    
            try{
                    $stmt = $this->db->prepare($sql);
                    /*
                     * Bind the parameter if an ID was passed
                     
                    if ( !empty($id) ){
                        $stmt->bindParam(":id", $keyword, PDO::PARAM_INT);
                    }
                    if ( !empty($group) ){
                        $stmt->bindParam(":word_type", $group, PDO::PARAM_INT);
                    }
                    */
                        $stmt->execute();
                        $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
                        $stmt->closeCursor();
                        return $results;
                }
                
                
             catch ( Exception $e ){
                 die ( $e->getMessage() );
                }
            
        }
    


    5,js 将返回的数据放入网页响应的DIV #word_list_searched中

    success: function(data) {
    					$("#word_list_searched").html(data);
                   },

    6,js 让 DIV #word_list_searched 在搜索后再出现


    $(document).ready(function() {
      $("#word_list_searched").hide();
    });
    


    success: function(data) {
    					$("#word_list_searched").html(data);
    					$("#word_list_searched").show();
                   },



  • 相关阅读:
    Windows7,Ubuntu双系统,用MBR引导
    把Adblock Plus的过滤规则应用到IE9
    Linux shell学习
    vxworks下面网络连接调试的搭建
    uboot网卡成功识别
    uboot功能扩展篇
    uboot终于显示串口信息了
    uboot解决flash failed无限挂起的问题
    问题解决随笔
    琐事皆休,开始找工作~
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3042337.html
Copyright © 2020-2023  润新知