2010-01-07 3 views
1

    J'ai joué avec jqGrid mais je n'arrive pas à comprendre comment implémenter la fonctionnalité de recherche. Idéalement, je voudrais utiliser la «Recherche avancée» - J'imagine que lorsque l'utilisateur soumet le formulaire de recherche avancée, les données saisies sont renvoyées à l'URL spécifiée sous 'editurl'? Im devinant cette URL puis sort le resultset filtré en utilisant les critères de recherche. Ma question est la suivante: comment cela se passe-t-il réellement? Ai-je raison d'envoyer les données URL, et si oui, comment ces données peuvent-elles être consultées? Im assez décent à jQuery, et bon à Javascript-Im en utilisant PHP pour tous les trucs côté serveur (connaissances d'experts, et de mySQL) mais ne peux pas pour la vie de moi semble travailler cela ... actuellement mon Java est:

Comment utiliser jqGrid Advanced Search/w Serverside PHP?

var lastsel; 
$("#list").jqGrid({ 
    url:'example.php', 
    datatype: 'xml', 
    hidegrid: false, 
    mtype: 'GET', 
    colNames:['id','ti', 'na','al','de'], 
    colModel :[ 
     {name:'id', index:'id', width:55, hidden:true, key:true, resizable:true}, 
     {name:'ti', index:'ti', width:75, resizable:true,editable:true}, 
     {name:'na', index:'na', width:200, align:'left', resizable:true,editable:true}, 
     {name:'al', index:'al', width:200, align:'left', resizable:true,editable:true}, 
     {name:'de', index:'de', width:400, align:'left', sortable:false, resizable:true,editable:true} 
    ], 
    pager: '#pager', 
    height:'100%', 
    rowNum:10, 
    searchGrid: {multipleSearch:true, caption : 'go'}, 
    rowList:[50,100,200], 
    sortname: 'ticker', 
    sortorder: 'asc', 
    viewrecords: true, 
    editurl:'example.php', 
    multipleSearch:true, 
    caption: 'Definitions' 
}); 



Toute aide très appréciée!

Répondre

0

Comme vous l'avez dit, l'URL contient les informations de recherche.

Mais la recherche n'est pas faite du côté client, vous devez l'implémenter côté serveur.

Et le code que vous avez posté n'est pas Java, c'est JavaScript.

+0

Merci pour la réponse, et les excuses, Java était un abus de langage- Je suis conscient de son Javascript (comme initialement noté). Je sais que vous pouvez saisir les critères de recherche, les termes etc dans php en utilisant $ _GET ['sOper'] (et similaire), mais comment les données sont-elles représentées/transmises pour une recherche avancée? J'imagine que c'est dans un tableau, mais comment ce tableau est-il structuré? (c'est-à-dire sérialisé etc.). – Sam

+0

Je n'ai trouvé aucune documentation de searchGrid (uesed dans votre exemple). Mais dans http://trirand.com/blog/jqgrid/jqgrid.html il y a des démos faisant des recherches, utilisant php. Avez-vous regardé? –

1

Je ne sais pas si vous avez trouvé votre réponse partout, mais je l'ai fait et je peux vous aider un peu.

Ils transmettent un paramètre appelé filtres. Est un json ... vous devez le recevoir comme une demande et le transformer en tableau.

Je travaille avec php, j'ai donc utilisé une fonction appelée json_decode ($ yourvar, true). Il a transformé le filtre dans un tableau. Le tableau est plus facile à manipuler.

0

Je suis juste essayer d'apprendre moi-même, mais je vous recommande de vérifier leur recherche PHP démo à l'adresse: http://www.trirand.com/blog/jqgrid/jqgrid.html

Sur le côté gauche, ouvrez l'onglet accordéon et descendez à Live Data Manipulation , puis cliquez sur "Recherche de données". Vous verrez l'exemple en direct avec le code. Cet exemple particulier utilise XML au lieu de JSON.

Dans leur exemple, je ne comprends pas comment ils transmettent les variables de recherche au code php: ça arrive. Si c'était json, je sais que ce serait dans l'URL.

Dans tous les cas, je peux voir que les données sont renvoyées à la page HTML de la même manière qu'une méthode de remplissage de grille normale: elle est retournée à jqGrid en format XML et jqGrid sait comment prendre des données dans ce format et courir avec.

Espérons que ça aide.