javascript - Jquery ajax returns data sorted -


i have php script fetches data db, result set returned in particular order, e.g.

name: john, age: 21, address: 1234 fifth ave.

i verified order while debugging. result set pushed array, encoded json object , passed jquery script through ajax request.

var resultset = [];     $.ajax({         async: false,         url: 'scripts/getdata.php,         datatype: "json",         success: function(data) {         /* store pieces of array */         resultset = data["php_resultset"]; //<--breakpoint here shows resultset sorted, if order preserved here, problem solved.     }     }); 

however, when data , analyze array, sorted, e.g.

address: 1234 fifth ave., age: 21, name: john age: 21

i want preserve order of original result set, there option have set in order that? appreciated.

update:

here snippet of php code builds array , encodes it

    $data = array ( "otherdata" => array(), "php_resultset" => array() );      while ( $row = sqlsrv_fetch_array ( $stmt, sqlsrv_fetch_assoc ) ) {         //push entire row result set array         array_push ( $data["php_resultset"], $row );     }      asort($somedata);      foreach ( $somedata $key) {         array_push ( $data["otherdata"], $key );     }  return json_encode($data);//<--at point, though sorted $somedata before pushing $data, php_resultset maintains sorted order. 

when encoding hash (associative array) json, order of key/value pairs not guaranteed preserved due differences in how hash represented in source language. example, hashes in perl stored in such manner optimize storage requirements @ expense of field order.

having said that, there several approaches can take have javascript reorder ajax result, 1 being return result along expected order of presentation, in:

{     "presentation_order": [         "name",         "address",         etc.      ],      "records": [          {"name":"juan", etc.},          etc.      ] } 

and use either reorder records before or while populate table on expected appear.

another approach might append value each field name in each record can used order them after retrieval , then, before display, removing ordering value field name.

so on server after converting result json, add prefix "aa_" first fieldname, incrementing prefix each succeeding field name "zz_". if first 2 field names "name" , "address" become "aa_name" , "ab_address".

then before adding record table @ client, sort fields field name , remove prefix using fieldname=fieldname.substring(3).


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -