Dynamische Spalten in der datagrid EasyUI

Habe ich eine Reihe von vordefinierten MySQL-Abfragen, deren Ergebnisse ich möchte auf eine EasyUI datagrid (jQuery).

Das problem ist, dass jede Abfrage liefert anderes Ergebnis als Spalten, so dass ich nicht verwenden können, etwas ähnlich wie die jQuery tutorial-Sektion Dynamisch ändern können datagrid-Spalten, wie die Spalte, Titel nicht bekannt sind, vor dem ausführen der Abfrage in der PHP-Datei.

Jedoch jedes JSON-Ergebnis von meinem PHP-Skript enthält die Namen der Spalten mit Daten. Gibt es eine Möglichkeit, ich kann die Karte das resultset an das datagrid, ohne die Spalte (Feld -) Namen im Voraus, oder mein Ansatz ist falsch? Ich bin ein Anfänger in jQuery zu verstehen versuchen.

HTML:

<script>
  function exec_prepared(index){
    $('#tt').panel({title:prepared_statements[index]});
    $('#tt').datagrid('load',{index:index})
  }
</script>
<div id="dlg" class="easyui-dialog" style="width:600px; height:280px; padding:10px 20px"
  closed="false" buttons="#dlg-buttons">
  <div class="ftitle">Prepared Statements</div>
  <form id="fm" method="post" novalidate>
    <div class="fitem">
      <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'"
        onclick="exec_prepared(0)">Test Query 1</a>
      <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'"
        onclick="exec_prepared(1);">Test Query 2</a>
    </div>
  </form>
</div>
</div>
<table id="tt" class="easyui-datagrid" style="width:600px;height:750px"
  url="getdata.php" rownumbers="true" pagination="true" pagesize="40">
</table>

PHP

switch $index
  case 0:
    $query="Select * from tableA";
    break;
  case 1:
    $query="Select * from tableB";
    break;
    ...
if (!$rs=mysql_query($query)){echo "Error in SQL line: ".__LINE__."<br>";echo $query;exit(1);}
$result["total"] = mysql_num_rows($rs);
$items = array();
while($row = mysql_fetch_object($rs)){
  array_push($items, $row);
}
$result["rows"] = $items;
echo json_encode($result);

InformationsquelleAutor user2482748 | 2013-06-13

Schreibe einen Kommentar