2012-05-30 83 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,