获取选择框的正确结果时出现问题 [英] Problem in getting right result for select box

查看:57
本文介绍了获取选择框的正确结果时出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Jquery:

i am using Jquery as:

$(document).ready(function(){
 test("price");
 alert("hi");
 $("#item2").change(function() 
    { 
        sort= $("#item2").val(); 
        test(sort);
    }); 
 });

函数test()是一些javascript函数,我的问题是当页面按价格加载函数调用时参数。当我从选择框中选择一些项时,使用sort参数调用test()(通过警告框验证)。但我没有得到正确的结果。我的意思是当我从选择框中选择选项时,我的test()结果与price一样,我认为这可能是问题因为Jquery的 $(文档).ready(function() { ,. test()函数根据参数制作一些html代码并在网页上显示
请建议我可以解决的问题

function test() is some javascript function, my problem is when page loads function calls by "price" parameter .Now when i select some item from select box function test() is called using sort parameter (verify by alert box). but i am not getting the correct result. i mean when i select option from select box than also my result of test() is as with "price" , i suppose it might be the problem because of Jquery's $(document).ready(function(){,. test() function make some html code based on the parameter and show it on the web page Please suggest me what can be the solution

编辑:

功能测试()是:

function test(sort)
{
        <%
         Ampliflex ms = Ampliflex.getInstance();
         String solrIP = ms.getSolrIP();
         String solrPort = ms.getSolrPort();
         String rows = ms.getSearchResultCount();
        %>
        solrIP='<%= solrIP %>';     // get Solr IP address
        solrPort='<%= solrPort %>'; // get Solr Port number
        rows='<%= rows %>';         // get number of results to return
        solrURL="http://"+solrIP+":"+solrPort;
        var query="${searchStr}";   // get the query string entered by ECommerce user
        query=query.replace(/[^a-zA-Z 0-9*?:.+-^""_]+/g,''); // Remove special characters 
        query=query.replace(/\*+/g,'*'); // Replace multiple occurrence of "*" with single "*"
        var newquery=query;
        if(parseInt(query)==NaN)
        {
            var lowerCaseQuery=query.toLowerCase();
            newquery=lowerCaseQuery;
        }
        else{
        var lowerCaseQuery=query;
        }

        // sort= document.getElementById("item2").value;

        $.getJSON(solrURL+"/solr/db/select/?qt=dismax&wt=json&&start=0&rows="+rows+"&q="+lowerCaseQuery+"&hl=true&hl.fl=text&hl.usePhraseHighlighter=true&sort="+sort+" desc&json.wrf=?", function(result){
            var highlight = new Array(result.response.numFound);
            $.each(result.highlighting, function(i, hitem){
                        var rg = /<em>(.*?)<\/em>/g;
                        var res = new Array();
                        var match = rg.exec(hitem.text[0]);
                        while(match != null){
                                res.push(match[1])
                                match = rg.exec(hitem.text[0]);
                                }
                                highlight[i]=res[0]
                        for (j=1 ;j<res.length;j++)
                        {
                        highlight[i]= highlight[i]+","+res[j];
                        }
                    });

                    var html="<table><tr>"
                    var count=0;
                    var alt="NoImage";
                    var size="3pt";
                    var id;
                    var flag=1; // Flag for error messages 
                    border="1";
                    // If no search results
                    if(result.response.numFound==0)
                    {
                     var msg= "<hr /><font size="+size+" >We're sorry, we found no results for <b>"+document.getElementById("queryString").value+"</font><hr />";

                    }
                    else
                    {
                /*  var msg= "<hr /><font size="+size+" >Total Results Found <b>  "+ result.response.numFound+"</b> for "+"<b>"+document.getElementById("queryString").value+"</b> keyword</font><hr /> ";*/

                    if (newquery==lowerCaseQuery)
                    { 
                    var msg= "<hr /><font size="+size+" >Total Results Found <b>  "+ result.response.numFound+"</b> for "+"<b>"+query+"</b> </font><hr /> ";
                    }
                    else
                    {
                    var msg= "<hr /><font size="+size+" >There were no exact matches for <b>  "+ query+"</b> , so we searched automatically for  "+"<b>"+query+"</b> and yielded "+result.response.numFound+" result(s)</font><hr /> ";
                    }
                    // Parse solr response and display it on web page
                        $.each(result.response.docs, function(i,item){
                            var word = new Array();
                            word=highlight[item["UID_PK"]].split(",");
                            var result="";
                            var j=0;
                            for (j=0 ;j<=item.text.length;j++)
                            {
                                result = result+item.text[j]+"<br>";
                            }
                            for (j=0 ;j<word.length;j++)
                            {      
                                result=result.replace(word[j],'<em>' + word[j] + '</em>');
                            }
                            html+="<td><table>";
                            var src=item.image;
                            id="id";
                            if(src!= null && src!= ""){
                                    html+="<p><tr><td><br>"+"<img id= "+id+ " src="+src+ " border="+border+ "   /></td></tr>";
                                    count=count+1;

                                    html += "<tr><td><b>ImagePath</b>  "+ item.image+"</td></tr>";
                            }
                            // If not insert a default image  
                                  else
                                  {

                                      src="images/products/default.jpg";
                                      html+="<tr><td><br><p>"+"<img id= "+id+ " src="+src+ " border="+border+" /></td></tr>";
                                      count=count+1;
                                      html += "<tr><td><b>ImagePath</b>  "+"No image path found" +"</td></tr>";
                                  }
                                 html += "<tr><td>UID_PK: "+ item.UID_PK+"</td></tr>";
                                 html += "<tr><td>Name: "+ item.name+"</td></tr>";
                                 html+="<tr><td><b>Price: $"+item.price+"</td></tr>";
                                 html+="<tr><td> "+result+"<br></td></tr>";
                                 html+="</p></table></td>"
                            if(count%3==0)
                            {
                                html+="</tr>"
                                html+="<tr>"
                            }

                    });
                    html+="</table>"
                }
                $("#text_container").html(msg);
                $("#result").append(html);


            }

    });

});
}


推荐答案

你拥有的JQuery代码发布工作正常。演示: http://jsfiddle.net/DtnUr/

The JQuery code that you have posted is working fine. Demo: http://jsfiddle.net/DtnUr/

我们需要更多细节来解决问题,例如您的HTML代码和JS函数。

We need more details to figure out the issue, such as your HTML code and JS functions.

这篇关于获取选择框的正确结果时出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆