jqGrid: die Suche konfigurieren

03. August 2010

Noch hab ich nicht rausgefunden, wie ich bei der jqGrid Suche das zweite dropdown (mit den Optionen wie “gleich”, “größer als”, etc.) komplett entfernen kann. Zumindest aber hab ichs geschafft, die Optionen auf eine zu beschränken und zwar so:

Zuerst erstelle ich ganz normal mein grid

  1. jQuery("#list_1").jqGrid({
  2. url:'inc/gridData.php?art=l1&typ=test',
  3. datatype: "xml",
  4. height: "auto",
  5. colNames:['ID','Shop', 'Status', 'Start', 'Ende'],
  6. colModel:[
  7. {name:'shops_promotions_id', index:'shops_promotions_id', width:75},
  8. {name:'shopname',index:'shopname', width:90},
  9. {name:'status',index:'status', width:60},
  10. {name:'start', index:'start', width:75},
  11. {name:'ende', index:'ende', width:75}
  12. ],
  13. rowNum:10,
  14. autowidth: true,
  15. rowList:[10,20,30,50,100],
  16. pager: '#gridpager',
  17. sortname: 'shops_id',
  18. viewrecords: true,
  19. sortorder: "desc",
  20. multiselect: true
  21. });

Ich aktiviere das kleine Icon Menü Links unten, wo auch die Suche ist und gebe bei den Optionen für die Suche (fünfte geschwungene Klammer) ein, dass sopt nur aus ‘cn’ bestehen soll:

  1. jQuery("#list_1").jqGrid('navGrid','#gridpager',{add: false, edit:false, del: false}, {}, {}, {}, {sopt: ['cn']});

Das beschränkt mir meine Suchoptionen auf genau einen Begriff: “enthält”. Welcher Begriff wie heißt, kann man hier nachlesen.

All available option are:
[‘eq’,’ne’,’lt’,’le’,’gt’,’ge’,’bw’,’bn’,’in’,’ni’,’ew’,’en’,’cn’,’nc’]
The corresponding texts are in language file and mean the following:
[‘equal’,’not equal’, ‘less’, ‘less or equal’,’greater’,’greater or equal’, ‘begins with’,’does not begin with’,’is in’,’is not in’,’ends with’,’does not end with’,’contains’,’does not contain’]

POST variablen bereinigen

03. August 2010

Eine kleine Funktion zum Bereinigen von POST variablen. Die Funktion stammt ursprünglich von dieser Seite, ich hab sie für meine Zwecke etwas modifiziert, da ich nicht den gesamten HTML Code rausfiltern konnte.

  1. function sanitize($input) {
  2. if (is_array($input)) {
  3. foreach($input as $var=>$val) {
  4. $output[$var] = sanitize($val);
  5. }
  6. }
  7. else {
  8. if (get_magic_quotes_gpc()) {
  9. $input = stripslashes($input);
  10. }
  11. $input = cleanInput($input);
  12. $output = mysql_real_escape_string($input);
  13. }
  14. return $output;
  15. }
  16. function cleanInput($input) {
  17. $search = array(
  18. '@<script[^>]*?>.*?</script>@si', // Strip out javascript
  19. '@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
  20. '@<![\s\S]>@' // Strip multi-line comments
  21. );
  22. $output = preg_replace($search, "", $input);
  23. //entferne nun die html tags
  24. $output = strip_tags($output, '<p><b><br><strike><div><blockquote><sub><sup><ol><ul><li><font>');
  25. return $output;
  26. }