2012-05-30 37 views
0

我使用自动填充jquery的工具有一个问题自动完成的jquery支柱2

客户端:

JQElement.autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: jsonAction, 
      dataType: "json", 
      data: { 
       maxRows: 10, 
       startsWith: request.term 
      }, 
      success: function(data) { 
       response($.map(data , function(item) { 
         return { 
           label: item.label, 
           value: item.value 
         } 
       })); 
       //response(data); 
      }, 
      error: function(message, status, errorThrown) { 
       alert("une erreur s'est produit lors de la recherche des éléments correspondant à la saisie. Contacter les créateurs du programme"); 
      } 
     }); 
    }, 
    minLength: 1 
}); 

该动作被称为:

public String getInsuredNumbers() { 
    try { 
     String maxRows = request.getParameter("maxRows"); 
     String startsWith = request.getParameter("startsWith"); 

     if(maxRows.equals("")) maxRows = "10"; 
     if(startsWith.equals("")) startsWith = "17"; 

     String sql = "select assure.ASS_nni, assure.ASS_nom, assure.ASS_prenom from assure where " 
       + "assure.ASS_nni like '" + startsWith + "%' limit " + maxRows; 
     ResultSet rs = this.getResponse(sql); 

     while(rs.next()) { 
      Param p = new Param(rs.getString(1), rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3)); 
      data.add(p); 
     } 


    } catch (SQLException ex) { 
     Logger.getLogger(AutocompleteAction.class.getName()).log(Level.SEVERE, null, ex); 
    } finally { 
     return SUCCESS; 
    } 
} 

public List<Param> getData() { 
    return data; 
} 

数据是帕拉姆库马拉

的ArrayList
public class Param { 
    private String value; 
    private String label; 

    public Param(String value, String label) { 
    this.value = value; 
    this.label = label; 
    } 

    public String getLabel() { 
    return label; 
    } 

    public String getValue() { 
    return value; 
    } 

}

Firebug的错误表明我的JSON答案是好 成功的答案被触发客户端

然而,输入下面的列表中显示为空

你能对帮助吗?

谢谢

+0

[increasemyacceptance.com(http://increasemyacceptance.com) –

+0

也许你可以提供的jsfiddle所以我们可以试验和帮助? –

+0

谢谢你的回答,但我发现它为什么显示任何东西。 JSON返回并不完全正确...确定我有我的数据数组,但我也有动作的成功答案...所以现在的问题是:是否可以发送数据而不是数据加上行动答案... ty – mlwacosmos

回答

0

解决方案

在客户端:

JQElement.autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: jsonAction, 
      dataType: "json", 
      data: { 
       maxRows: 10, 
       startsWith: request.term 
      }, 
      success: function(data) { 
       var mydata; 

       $.map(data, function(item, i) { 
        if(i == "data") { 
         mydata = item; 
        } 
       }); 

       response($.map(mydata , function(item) { 
         return { 
          label: item.label, 
          value: item.value 
         } 
       })); 
      }, 
      error: function(message, status, errorThrown) { 
       alert("une erreur s'est produit lors de la recherche des éléments correspondant à la saisie. Contacter les créateurs du programme"); 
      } 
     }); 
    }, 
    minLength: 1,