建议文本字段一样 - 谷歌的建议 - 使用AJAX / jQuery的建议、字段、文本、jQuery

2023-09-10 20:43:58 作者:长辞笙

当我输入文本提交信件,如果它在数据库匹配,它应该显示所有匹配的话。当我进入了Travelfrom文本字段中某些文本,如:A之后,我应该得到它与一开始的所有记录 当我进入Travelfrom(文本字段),它会自动完成它,这应该是像谷歌的建议。如何做到这一点的AJAX。

现在:我从数据库中检索的Travelfrom数据。现在,当我在travelfrom文本字段中输入第一个字母,就应检查及匹配的记录及其平等的,显示列表。

我已经写了jQuery的/阿贾克斯$ C $下自动完成建议的文本框,我通过文本字段值从阿贾克斯到Java,检查的条件。 请让我知道如何检查的条件,并发送回显示意见箱。请帮我。

 函数getAutoSuggestionData(){
警报(AJAX调用的方法getAutoSuggestionData());

$(文件)。就绪(函数(){

$('#t02Travelfrom)。KEYUP(功能(E){
警报(1);


VAR t02Travelfrom = $(#<的portlet:空间/> t02Travelfrom)。VAL();

警报(t02Travelfrom的价值 - >中+ t02Travelfrom);

VAR autodataString ='功能= Getautodatafield'+'和; t02Travelfrom ='+ t02Travelfrom;
警报(之后autodataString);
警报(+ autodataStringautodataString的价值);

如果(t02Travelfrom!= 0)
{
$阿贾克斯({

网址:$ {getTravelDataAutoUrl},
数据:autodataString,
缓存:假的,
成功:函数(HTML)
{
警报(成功);
}
});返回false;
}其他
{

}

});
});
}
 
面向Java开发人员的Ajax 使用Google Web Toolkit开发Ajax

TravelDetails.java

 公共无效GetAutoSuggestionData(ResourceRequest要求,ResourceResponse响应)抛出SystemException的{

的System.out.println(********内GetAutoSuggestionData()********);
串tfromstatic =的request.getParameter(t02Travelfromdyn);

诠释计数= EMP_TRAVEL_DETAILSLocalServiceUtil.getEMP_TRAVEL_DETAILSsCount();
名单< EMP_TRAVEL_DETAILS> travelDetailLists = EMP_TRAVEL_DETAILSLocalServiceUtil.getEMP_TRAVEL_DETAILSs(0,计数);

字符串t02Travelfrom;

对于(EMP_TRAVEL_DETAILS travelList:travelDetailLists){

t02Travelfrom = travelList.getT02Travelfrom();

如果(tfromstatic.equals(t02Travelfrom)){

}


}


}
 

解决方案

试试这个:

  $(#值)。键preSS(函数(){
VAR数据= $(#值)。VAL()
VAR dataString ='功能=的GetValues​​'+'和;数据='+数据;
$阿贾克斯({

网址:< Liferay的portlet的:resourceURL>< / Liferay的portlet的:resourceURL>中,
数据:dataString,
缓存:假的,
成功:函数(HTML)
{
 如果(HTML代码!='')
 {

 无论你想//待办事项显示HTML结果。 (在你的情况下,HTML值会进来下拉)

警报(HTML);
 $('#值)VAL()。
 }

}});返回false; });
 

在成功你将得到的结果以HTML的形式。在下拉填充这些值。

希望这会帮助你。

When I enter the letter in text filed and if it has a match in the database, it should display all the matched words. When I enter some text in the Travelfrom text field like: A then I should get the all records which start with A when I enter the Travelfrom(text field) it will auto complete it , It should be like Google suggestion. How to do it in AJAX.

Now: I retrieve the Travelfrom data from the database. Now when I entered first letter in travelfrom textfield, it should check and its equal, display list of matching records.

I have written the Jquery/Ajax code for auto complete suggestion text box and I pass the textfield value from AJAX to java, to check the condition. Please let me know how to check the condition and send back display the suggestion box. Please help me.

function getAutoSuggestionData(){
alert("calling ajax method getAutoSuggestionData()");

$(document).ready(function(){

$('#t02Travelfrom').keyup(function(e){
alert("1");


var t02Travelfrom=$("#<portlet:namespace />t02Travelfrom").val(); 

alert("Value of t02Travelfrom-->"+t02Travelfrom);

var autodataString = 'function=Getautodatafield'+'&t02Travelfrom='+ t02Travelfrom;
alert("after autodataString");
alert("value of autodataString"+autodataString);

if(t02Travelfrom!=0)
{
$.ajax({

url: "${getTravelDataAutoUrl}",
data: autodataString,
cache: false,
success: function(html)
{ 
alert("success");
}
}); return false; 
}else
{

}

}); 
});
}

TravelDetails.java

public void GetAutoSuggestionData(ResourceRequest request, ResourceResponse response) throws SystemException {

System.out.println("********inside GetAutoSuggestionData()********");
String tfromstatic =request.getParameter("t02Travelfromdyn");

int count = EMP_TRAVEL_DETAILSLocalServiceUtil.getEMP_TRAVEL_DETAILSsCount();
List <EMP_TRAVEL_DETAILS> travelDetailLists = EMP_TRAVEL_DETAILSLocalServiceUtil.getEMP_TRAVEL_DETAILSs(0, count);

String t02Travelfrom;

for(EMP_TRAVEL_DETAILS travelList:travelDetailLists ){

t02Travelfrom=travelList.getT02Travelfrom();

if(tfromstatic.equals(t02Travelfrom)){

}


}


}

解决方案

Try this:

$("#value").keypress(function() {
var data = $("#value").val()
var dataString = 'function=getValues'+'&data='+data;
$.ajax({

url: "<liferay-portlet:resourceURL></liferay-portlet:resourceURL>",
data: dataString ,
cache: false,
success: function(html)
{
 if(html!='')
 {

 // ToDo display HTML result wherever you want. (in your case, html values would come in drop down)

alert(html);
 $('#value').val("");
 }

} }); return false; });

On Success you will get the results in the form of HTML. Populate these values in drop down.

Hope this would help you.