AppML 列表

在本章中,我们将列出数据库中的记录。

本页上的示例使用本地 SQL 数据库。

本地 SQL 数据库在 IE 或 Firefox 中不起作用。请使用 Chrome 或 Safari。

创建一个新的模型

在上一章中,您使用了一个模型来创建数据库。

现在创建一个新模型,包括过滤器和排序定义:

model_customerslist.js
  1. {
  2. "database" : {
  3. "connection" : "localmysql",
  4. "maintable" : "Customers",
  5. "keyfield" : "CustomerID",
  6. "sql" : "SELECT * FROM Customers"},
  7. "updateItems" : [
  8. {"item" : "CustomerName"},
  9. {"item" : "Address"},
  10. {"item" : "PostalCode"},
  11. {"item" : "City"},
  12. {"item" : "Country"}]
  13. }

在应用程序中使用该模型:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="https://cankaoshouce.com/css/w3.css">
  5. <script src="https://cankaoshouce.com/js/appml/appml.js"></script>
  6. <script src="/js/appml/appml_sql.js"></script>
  7. <body>
  8. <div class="w3-container">
  9. <div appml-data="local?model=/example/appml/model_customerslist">
  10. <h2>Customers</h2>
  11. <div appml-include-html="/example/appml/inc_listcommands.html"></div>
  12. <table class="w3-table-all">
  13. <tr>
  14. <th>Customer</th>
  15. <th>City</th>
  16. <th>Country</th>
  17. </tr>
  18. <tr appml-repeat="records">
  19. <td>{{CustomerName}}</td>
  20. <td>{{City}}</td>
  21. <td>{{Country}}</td>
  22. </tr>
  23. </table>
  24. </div>
  25. </div>
  26. </body>
  27. </html>

创建一个 HTML 过滤器模板

为过滤器创建 HTML:

inc_filter.html
  1. <div id="appml_filtercontainer" class="w3-container w3-light-grey w3-section w3-padding-large" style="display:none;">
  2. <span id="appmlbtn_queryClose" onclick="this.parentNode.style.display='none';" class="w3-button w3-large w3-right">&times;</span>
  3. <h2>Filter</h2>
  4. <div id="appml_filter">
  5. <div appml-repeat="filteritems">
  6. <div class="w3-row">
  7. <div class="w3-col m4">
  8. <label>{{label||item}}:</label>
  9. </div>
  10. <div class="w3-col m2">
  11. <input id="appml_datatype_{{item}}" type='hidden'>
  12. <select id="appml_operator_{{item}}" class="w3-select w3-border">
  13. <option value="0">=</option>
  14. <option value="1">&lt;&gt;</option>
  15. <option value="2">&lt;</option>
  16. <option value="3">&gt;</option>
  17. <option value="4">&lt;=</option>
  18. <option value="5">&gt;=</option>
  19. <option value="6">%</option>
  20. </select>
  21. </div>
  22. <div class="w3-col m6">
  23. <input id="appml_query_{{item}}" class="w3-input w3-border">
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <div id="appml_orderby">
  29. <h2>Order By</h2>
  30. <div class="w3-row">
  31. <div class="w3-col m5">
  32. <select id='appml_orderselect' class="w3-select w3-border">
  33. <option value=''></option>
  34. <option appml-repeat="sortitems" value="{{item}}">{{label || item}}</option>
  35. </select>
  36. </div>
  37. <div class="w3-col m7">
  38. ASC <input type='radio' id="appml_orderdirection_asc" name='appml_orderdirection' value='asc' class="w3-radio">
  39. DESC <input type='radio' id="appml_orderdirection_desc" name='appml_orderdirection' value='desc' class="w3-radio">
  40. </div>
  41. </div>
  42. </div>
  43. <br>
  44. <button id="appmlbtn_queryOK" type="button" class="w3-btn w3-green">OK</button>
  45. </div>

将过滤器 HTML 保存在一个文件中,使用合适的名称,如 "inc_filter.html"。

使用 appml-include-html 在原型中包含上面的过滤器 HTML:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <title>Customers</title>
  4. <link rel="stylesheet" href="https://cankaoshouce.com/css/w3.css">
  5. <script src="https://cankaoshouce.com/js/appml/appml.js"></script>
  6. <script src="/js/appml/appml_sql.js"></script>
  7. <body>
  8. <div class="w3-container">
  9. <div appml-data="local?model=/example/appml/model_customerslist">
  10. <h2>Customers</h2>
  11. <div appml-include-html="/example/appml/inc_listcommands.html"></div>
  12. <div appml-include-html="/example/appml/inc_filter.html"></div>
  13. <table class="w3-table-all">
  14. <tr>
  15. <th>Customer</th>
  16. <th>City</th>
  17. <th>Country</th>
  18. </tr>
  19. <tr appml-repeat="records">
  20. <td>{{CustomerName}}</td>
  21. <td>{{City}}</td>
  22. <td>{{Country}}</td>
  23. </tr>
  24. </table>
  25. </div>
  26. </div>
  27. </body>
  28. </html>