Derniers tutoriels de développement web
 

AppML forme


Ce chapitre montre comment construire une forme d'entrée contre une base de données.


Les exemples de cette page utilisent une base de données SQL locale.
bases de données SQL locales ne fonctionne pas dans IE ou Firefox. Utilisez Chrome ou Safari.

Créer un modèle de formulaire

model_customersform.js

{
"database" : {
    "connection" : "localmysql",
    "maintable" : "Customers",
    "keyfield" : "CustomerID",
    "sql" : "SELECT * FROM Customers"},
"updateItems" : [
    {"item" : "CustomerName"},
    {"item" : "Address"},
    {"item" : "PostalCode"},
    {"item" : "City"},
    {"item" : "Country"}]
}

Création d'un formulaire HTML

Dans le chapitre précédent, vous avez créé une demande d'inscription des enregistrements d'une base de données.

Maintenant, ajoutez une application de formulaire à la page:

Formulaire HTML

<div id="Form01" appml-data="local?model=model_customersform"
class="jumbotron">

<div class="form-group">
  <label for="customername">Customer:</label>
  <input id="customername" class="form-control">
</div>

<div class="form-group">
  <label for="address">Address:</label>
  <input id="address" class="form-control">
</div>

<div class="form-group">
  <label for="city">City:</label>
  <input id="city" class="form-control">
</div>

<div class="form-group">
  <label for="postalcode">Postal Code:</label>
  <input id="postalcode" class="form-control">
</div>

<div class="form-group">
  <label for="country">Country:</label>
  <input id="country" class="form-control">
</div>

</div>
Essayez vous - même »

Formulaire HTML Explained

appml-data = "modèle local? = model_customersform" définit l'application appml pour le formulaire.


Créer un formulaire HTML Commandes

Utilisez votre feuille de style préféré (we use bootstrap) , et de créer vos commandes de forme recherchées:

inc_formcommands.htm

<button type="button" class="close" onclick="document.getElementById('Form01').style.display='none';">X</button>

<button type="button" class="close">X</button>

<div class="btn-toolbar" style="margin-bottom:20px;">
<div class="btn-group">

<button type="button" class="btn btn-default" onclick="appml('Form01').newRecord();">
<span class="glyphicon glyphicon-new-window"></span> New</button>

<button type="button" class="btn btn-primary" onclick="appml('Form01').saveRecord();">
<span class="glyphicon glyphicon-floppy-disk"></span> Save</button>

<button type="button" class="btn btn-default" onclick="appml('Form01').deleteRecord();">
<span class="glyphicon glyphicon-trash"></span> Delete</button>

</div>
</div>

<div id="appmlmessage" class="alert alert-warning" style="display:none;">
<button type="button" class="close"
onclick="this.parentNode.style.display='none';">X</button>
<div id="message"></div>

</div>

Inclure les commandes de formulaire

Inclure la forme de commandes dans votre formulaire :.

Formulaire HTML

<div id="Form01" appml-data="local?model=model_customersform"
class="jumbotron">

<div appml-include-html="inc_formcommands.htm"></div>

<div class="form-group">
<label for="customername">Customer:</label>
<input id="customername" class="form-control">
</div>

<label for="address">Address:</label>
<input id="address" class="form-control">
</div>

<div class="form-group">
<label for="city">City:</label>
<input id="city" class="form-control">
</div>

<div class="form-group">
<label for="postalcode">Postal Code:</label>
<input id="postalcode" class="form-control">
</div>

<div class="form-group">
<label for="country">Country:</label>
<input id="country" class="form-control">
</div>

</div>
Essayez vous - même »

Ajouter une colonne à la table cliquable

Dans le chapitre précédent, vous avez créé une demande d'inscription des enregistrements d'une base de données.

Maintenant, ajoutez une nouvelle colonne à la table:

HTML Source

<div appml-data="local?model=model_customerslist">

<h1>Customers</h1>
<div appml-include-html="inc_listcommands.htm"></div>
<div appml-include-html="inc_filter.htm"></div>

<table class="table table-striped table-bordered">
  <tr>
    <th></th>
    <th>Customer</th>
    <th>City</th>
    <th>Country</th>
  </tr>
  <tr appml-repeat="records">
    <td style="cursor:pointer;width:34px;"
        onclick="appml('Form01').run({{CustomerID}})">
        <span class="glyphicon glyphicon-edit"></span></td>

    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
  </tr>
</table>

</div>
Essayez vous - même »

L'événement onclick (in the new column) déclenche un appel pour exécuter une application appml situé dans l'élément HTML avec id = « Form01 »:

  • appml('Form01') renvoie la demande appml
  • run({{CustomerID}}) exécute les applications avec CustomerID comme paramètre.

Enfin, masquer le formulaire

Ajouter un style à la forme pour le rendre invisible:

HTML

<div id="Form01" appml-data="local?model=model_customersform"
appml-controller="myFormController"
class="jumbotron" style="display:none" >

Ajouter un contrôleur à la forme, pour afficher la forme que lorsqu'il est chargé et prêt à afficher les données:

Manette

<script>
function myFormController($appml) {
    if ($appml.message == "ready") {return -1;}
    if ($appml.message == "loaded") {
        document.getElementById("Form01").style.display="";
    }
}
</script>
Essayez vous - même »