1. #61
    Ext User
    Join Date
    Jul 2007
    Location
    Florida
    Posts
    9,996
    Vote Rating
    5
    mjlecomte will become famous soon enough mjlecomte will become famous soon enough

      0  

    Default


    Quote Originally Posted by teknaut View Post
    Hmm, thanks for that it was to do with my return data as you have saisd. If I echo out {"success":true,"totalCount":"0","rows":[]} as my responsethe grid clears as expected. I will have to modify the return somehow.

    Thanks very much for your help.
    You might be interested in something like this (see "LOOK HERE"):
    PHP Code:
    function showData($dbTable
    {
    //    debugBreak();

        
    global $taxRate;
        
         
    /* By specifying the start/limit params in ds.load 
          * the values are passed here
          * if using ScriptTagProxy the values will be in $_GET
          * if using HttpProxy      the values will be in $_POST (or $_REQUEST)
          * the following two lines check either location, but might be more
          * secure to use the appropriate one according to the Proxy being used
          */
        //offset  
        
    $start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
        
    //the page size
        
    $end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);  


        
    //if remoteSort is true than we need to include an ORDER BY in our query
        //column to sort
        
    if(isset($_REQUEST['sort'])){
            
    $sort = (isset($_POST['sort']) ? $_POST['sort'] : $_GET['sort']);
        }
        
    //sort direction 'DESC' or 'ASC'  (Ext.js sends mysql syntax)
        
    if(isset($_REQUEST['dir'])){
            
    $dir = (isset($_POST['dir']) ? $_POST['dir'] : $_GET['dir']);  
        }
        
    $sortBy = isset($sort) ? $sort 'company';
        if(isset(
    $dir)) {
            
    $sortDir $dir;
        }
        else{
            
    $sortDir 'ASC';
        }
        
        
        
    //get the total number of records so we can return it back with the results
        //the total count is used by the paging toolbar to display the number of records
        
    $sql_count 'SELECT * FROM ' $dbTable;
        
    $result_count mysql_query($sql_count);
        
    $rows mysql_num_rows($result_count);

        
    //now we get the data we want to send back to populate the store
        //we LIMIT the data sent back using the parameters from the paging toolbar
        //we also ORDER BY so the data is presented in some rational order
        //  note: when using ORDER BY with LIMIT you'll probably want to make sure
        //        that the column(s) using ORDER BY are indexed
        
    $sql $sql_count .  ' ORDER BY ' $sortBy ' ' $sortDir ' LIMIT ' $start ', '$end;
        
    $result mysql_query($sql);
    ////////////////////
    ////  LOOK HERE ////
        //to properly update grid, we need to return an empty array not null
        //declare an empty array, so even if it's empty when it's encoded it will return
        //"results":[]
        
    $arr = array();

        
    //populate the array if the query found records
        
    while($rec mysql_fetch_array($resultMYSQL_ASSOC)){
            
    //these lines are to populate the tax column for the initial display
            //of the grid, any updates to the price are handled by another function below
            
    $price $rec['price'];
            
    $rec['tax'] = round($price * ($taxRate),2);
            
            
    $arr[] = $rec;
        };

        
        if (
    version_compare(PHP_VERSION,"5.2","<"))
        {    
            require_once(
    "./JSON.php"); //if php<5.2 need JSON class
            
    $json = new Services_JSON();//instantiate new json object
            
    $data=$json->encode($arr);  //encode the data in json format
        
    } else
        {
            
    $data json_encode($arr);  //encode the data in json format
        
    }

    //    $data = (is_null($data)) ? '[]' : $data;
        
        /* If using ScriptTagProxy:  In order for the browser to process the returned
           data, the server must wrap te data object with a call to a callback function,
           the name of which is passed as a parameter by the ScriptTagProxy. (default = "stcCallback1001")
           If using HttpProxy no callback reference is to be specified*/
        
    $cb = isset($_GET['callback']) ? $_GET['callback'] : '';
           
        
    //we defined in our reader that the total count will be named 'total' (see totalProperty)
         
    echo $cb '({"total":"' $rows '","results":' $data '})';

    }
    //end showData 

  2. #62
    Ext User
    Join Date
    Aug 2007
    Posts
    3
    Vote Rating
    0
    dwt11 is on a distinguished road

      0  

    Default


    it's very good!

  3. #63
    Ext User
    Join Date
    Feb 2008
    Posts
    20
    Vote Rating
    0
    hazooma is on a distinguished road

      0  

    Default


    I am trying to use the checkIndexes to indicate that the first and second should be checked by default, but I think I am doing something wrong.

    mode: 'remote'
    ,iconCls: false
    ,checkIndexes: [0,1]

    Thanks

  4. #64
    Sencha - Community Support Team jsakalos's Avatar
    Join Date
    Apr 2007
    Location
    Slovakia
    Posts
    27,509
    Vote Rating
    374
    jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future

      0  

    Default


    It doesn't work with numerical indexes but with field names as specified by column model dataIndex. For example:

    checkIndexes:['persFirstName', 'persLastName']
    Jozef Sakalos, aka Saki

    Education, extensions and services for developers at new http://extjs.eu
    News: Grid Search Plugin, ExtJS 5 Complex Data Binding using MVVM


  5. #65
    Ext User
    Join Date
    Nov 2007
    Location
    Fountain Valley, CA, USA
    Posts
    30
    Vote Rating
    0
    donssmith is on a distinguished road

      0  

    Default


    Hi Jozef,

    First thing... Great plugin!

    I added a new config value called 'alignment' to allow the plugin to be aligned left or right on the toolbar. I added the logic to the onRender function.

    PHP Code:
    // added to config defaults
    ,alignment:'left'


    // onRender
    if (this.alignment === 'right') {
        
    tb.addFill();
    }
    else {
        
    tb.addSeparator();

    Thanks,
    Don

  6. #66
    Sencha - Community Support Team jsakalos's Avatar
    Join Date
    Apr 2007
    Location
    Slovakia
    Posts
    27,509
    Vote Rating
    374
    jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future

      0  

    Default


    Perfect! Thank you.

    I would just give config property name align to be consistent with the rest of Ext (e.g. labelAlign)
    Jozef Sakalos, aka Saki

    Education, extensions and services for developers at new http://extjs.eu
    News: Grid Search Plugin, ExtJS 5 Complex Data Binding using MVVM


  7. #67

  8. #68
    Ext User
    Join Date
    Nov 2007
    Location
    Fountain Valley, CA, USA
    Posts
    30
    Vote Rating
    0
    donssmith is on a distinguished road

      0  

    Default


    Yeah, I was debating between using align or alignment. I notice some with a name like buttonAlign, labelAlign, etc... and some with just alignment.

    One additional thing I added was a minimum input length for the search text box. This is ideal to make sure the search doesn't bring back more than you want it to. The only thing I wasn't sure about was how to notify the user when then entered less than the minimum input length. I was thinking a message box might be too intrusive. Any ideas?

    PHP Code:
    // added to config defaults
    ,minInputLength:0


    // onTriggerSearch
    if (this.minInputLength && val.length this.minInputLength) {
        return;


  9. #69
    Sencha - Community Support Team jsakalos's Avatar
    Join Date
    Apr 2007
    Location
    Slovakia
    Posts
    27,509
    Vote Rating
    374
    jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future jsakalos has a brilliant future

      0  

    Default


    Well, it's questionable if it is really necessary, at least from my viewpoint where I work almost exclusively with large tables and paging. Therefore, I do not need to force user to type at-least-that-many-characters (search works on enter, escape and triggers) as I always return only pageSize number of records (but maybe 100 pages if he typed only "a").

    If I would be about to notify user about a number of character limits I would probably simply set minLength property of text field and I would not submit query if field was invalid.
    Jozef Sakalos, aka Saki

    Education, extensions and services for developers at new http://extjs.eu
    News: Grid Search Plugin, ExtJS 5 Complex Data Binding using MVVM


  10. #70
    Ext User
    Join Date
    Nov 2007
    Location
    Fountain Valley, CA, USA
    Posts
    30
    Vote Rating
    0
    donssmith is on a distinguished road

      0  

    Default


    I was looking more from a performance/long running query point of view. Some of the tables I work with have close to 20 million records. To perform a wild card search on a single character (SELECT * FROM <tablename> WHERE <fieldname> LIKE '%a%') would cause a table or index scan of all 20 million records. I guess I want to save the user from themselves and to keep long running queries from occurring.

    I took your suggestion and added the following to the field creation within onRender. I also changed the config property from minInputLength to minLength.

    PHP Code:
    ,minLength:this.minLength this.minLength 

Thread Participants: 244

  1. franklt69 (5 Posts)
  2. galdaka (2 Posts)
  3. thameema (1 Post)
  4. Dumbledore (3 Posts)
  5. JeffBurr (1 Post)
  6. berend (1 Post)
  7. mystix (1 Post)
  8. salvi (1 Post)
  9. cobnet (1 Post)
  10. dawesi (2 Posts)
  11. mysticav (3 Posts)
  12. mike1993 (3 Posts)
  13. JorisA (1 Post)
  14. cricri (5 Posts)
  15. apaa (1 Post)
  16. mbstroz (5 Posts)
  17. notjoshing (1 Post)
  18. MeDavid (1 Post)
  19. AlxH (1 Post)
  20. pantarhei (5 Posts)
  21. DeeZ (3 Posts)
  22. NBRed5 (2 Posts)
  23. zoq (2 Posts)
  24. ajaxE (4 Posts)
  25. cmendez21 (1 Post)
  26. Ronaldo (1 Post)
  27. mjlecomte (25 Posts)
  28. smokeman (11 Posts)
  29. Nam (4 Posts)
  30. keithnlarsen (2 Posts)
  31. rednix (2 Posts)
  32. expertmo (4 Posts)
  33. cking (1 Post)
  34. jelt (4 Posts)
  35. bcamp1973 (2 Posts)
  36. grgur (2 Posts)
  37. dwt11 (1 Post)
  38. michiel (3 Posts)
  39. Shmoo (3 Posts)
  40. evilized (1 Post)
  41. fangstern (1 Post)
  42. vishalg (3 Posts)
  43. Strati (1 Post)
  44. ArtBuilders (6 Posts)
  45. dax (5 Posts)
  46. thatcoder (7 Posts)
  47. jcar98 (1 Post)
  48. derbbre (3 Posts)
  49. wm003 (1 Post)
  50. garraS (3 Posts)
  51. kenshin (1 Post)
  52. ByteLess (2 Posts)
  53. Lobos (1 Post)
  54. a4 (1 Post)
  55. durlabh (3 Posts)
  56. elDub (1 Post)
  57. rstuven (1 Post)
  58. crpatrick (4 Posts)
  59. zedisdead (1 Post)
  60. vector4711 (1 Post)
  61. oanimashaun (1 Post)
  62. donssmith (3 Posts)
  63. sanjshah (5 Posts)
  64. nielsendev (2 Posts)
  65. Jika (2 Posts)
  66. Cooldream (2 Posts)
  67. iTzAngel (1 Post)
  68. franck34 (2 Posts)
  69. paubach (2 Posts)
  70. stewart (1 Post)
  71. teknaut (4 Posts)
  72. pjesus (2 Posts)
  73. NotChris (5 Posts)
  74. juicymedia (2 Posts)
  75. v496820 (2 Posts)
  76. hazooma (1 Post)
  77. obbakilla (1 Post)
  78. BlueCamel (1 Post)
  79. feodor (1 Post)
  80. w3bbuilder (1 Post)
  81. johnsbrn (1 Post)
  82. razor (1 Post)
  83. seppy (3 Posts)
  84. stefanorg (3 Posts)
  85. jimkan (1 Post)
  86. kenja (2 Posts)
  87. sandy (1 Post)
  88. eri.TsingTao (1 Post)
  89. rainydays (1 Post)
  90. iLiketoGrid (1 Post)
  91. Shaguar (8 Posts)
  92. AMS949 (3 Posts)
  93. moegal (3 Posts)
  94. aleczapka (2 Posts)
  95. Stripeman (6 Posts)
  96. abhaysingh (5 Posts)
  97. mango (1 Post)
  98. NoahK17 (3 Posts)
  99. Remy (1 Post)
  100. medley (11 Posts)
  101. stevchen (1 Post)
  102. abraxxa (28 Posts)
  103. Efex (3 Posts)
  104. Rotomaul (2 Posts)
  105. miihiir (4 Posts)
  106. nebbian (1 Post)
  107. Riri (6 Posts)
  108. catalina (1 Post)
  109. Bing Qiao (1 Post)
  110. juferoto (2 Posts)
  111. bk1 (2 Posts)
  112. sami_user (1 Post)
  113. dmcclean (2 Posts)
  114. Pink.ME (3 Posts)
  115. sebrand (1 Post)
  116. charak (2 Posts)
  117. charleshimmer (16 Posts)
  118. patrosmania (4 Posts)
  119. rosecorp (1 Post)
  120. johrisd (1 Post)
  121. aomadevelopers (1 Post)
  122. nicola_java (1 Post)
  123. BitPoet (1 Post)
  124. OliverT (3 Posts)
  125. randomuser01 (2 Posts)
  126. schone (3 Posts)
  127. perdar (1 Post)
  128. ajain (3 Posts)
  129. getindas (1 Post)
  130. giega (1 Post)
  131. ryanyoungsma (1 Post)
  132. ph0enix (1 Post)
  133. italianboy (1 Post)
  134. LutzAlbers (3 Posts)
  135. Ajish (2 Posts)
  136. christophe67 (1 Post)
  137. jmariani (4 Posts)
  138. wki01 (4 Posts)
  139. wemerson.januario (1 Post)
  140. viciuascuns (4 Posts)
  141. JohnnyWheels (1 Post)
  142. nar (3 Posts)
  143. shab (2 Posts)
  144. mystik (1 Post)
  145. unnamed_dev (1 Post)
  146. ScottLoney (3 Posts)
  147. whodat (4 Posts)
  148. Alex84 (7 Posts)
  149. mjmonserrat (3 Posts)
  150. andy_ghg (2 Posts)
  151. knappy (1 Post)
  152. bareflix (2 Posts)
  153. makiavelli (1 Post)
  154. daniel_82 (1 Post)
  155. peteryjk (2 Posts)
  156. michael.pedrotti (1 Post)
  157. elona (3 Posts)
  158. chinnapandu (1 Post)
  159. jsundquist (6 Posts)
  160. feo (1 Post)
  161. dubito (2 Posts)
  162. Georgioa (1 Post)
  163. SchattenMann (4 Posts)
  164. Relleum (1 Post)
  165. ivan.kristianto (3 Posts)
  166. yeyepot (1 Post)
  167. raydeen (1 Post)
  168. easycodes (4 Posts)
  169. rockinrandall (5 Posts)
  170. redcs (3 Posts)
  171. hatsu1119 (1 Post)
  172. surendra_leo (1 Post)
  173. ssawchenko (11 Posts)
  174. Sigma (3 Posts)
  175. Lmouse (1 Post)
  176. Spongerusher (1 Post)
  177. ValiBOSS (1 Post)
  178. joe123 (3 Posts)
  179. scooter (3 Posts)
  180. harsha_velicheti (1 Post)
  181. ivanleblanc (9 Posts)
  182. m4v0 (3 Posts)
  183. jbusuulwa (1 Post)
  184. seedeg (6 Posts)
  185. Z24_2000 (3 Posts)
  186. markw (2 Posts)
  187. atutus (2 Posts)
  188. luke82 (3 Posts)
  189. rameshkt (2 Posts)
  190. elgalle (2 Posts)
  191. Vepe (2 Posts)
  192. barser (2 Posts)
  193. metra (5 Posts)
  194. hotdesc (4 Posts)
  195. chrislovecnm (1 Post)
  196. King_Aero (1 Post)
  197. idefix (5 Posts)
  198. daiei27 (3 Posts)
  199. LostSoul (2 Posts)
  200. tumbochka (3 Posts)
  201. Dipish (7 Posts)
  202. mcafee (1 Post)
  203. alexpotemkin (1 Post)
  204. ruperty (5 Posts)
  205. Rbn_3d (2 Posts)
  206. rxopt (1 Post)
  207. mayurid (1 Post)
  208. jeroen_syntux (2 Posts)
  209. aminaq (4 Posts)
  210. sosy (3 Posts)
  211. asafm (2 Posts)
  212. extjs1111_user (4 Posts)
  213. scottmartin (2 Posts)
  214. clements (1 Post)
  215. wavedan (3 Posts)
  216. jizhang88 (2 Posts)
  217. Coil (2 Posts)
  218. Samuel.reed (6 Posts)
  219. sense.nda12 (1 Post)
  220. zoja (1 Post)
  221. andyproxis (1 Post)
  222. baldeep_bhatia (1 Post)
  223. stevwinata (1 Post)
  224. Patrick86 (1 Post)
  225. dumpf (3 Posts)
  226. parimala (3 Posts)
  227. vicvolk (4 Posts)
  228. preichow (1 Post)
  229. shaoming (1 Post)
  230. Ixtinkt (7 Posts)
  231. jadiagaurang (1 Post)
  232. Juanyong (1 Post)
  233. venkateshns (1 Post)
  234. panpur (3 Posts)
  235. codeart.ch (2 Posts)
  236. hieu79vn (1 Post)
  237. mvsrekha (2 Posts)
  238. aislan (1 Post)
  239. buhari (1 Post)
  240. extjsquicklearner (1 Post)
  241. shankar8rajah1 (1 Post)
  242. jacinth_1215 (2 Posts)
  243. venkikodakirthi (1 Post)
  244. bwgv (1 Post)

Tags for this Thread