1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
| // Création dun objet LoadVar pour les requêtes de type "SELECT"
var select_lv:LoadVars = new LoadVars();
// Création dun objet LoadVar pour les requêtes de type "INSERT"
var insert_lv:LoadVars = new LoadVars();
//Tableau permettant de stocker les différents messages d'erreur
var errorMsgs:Array = [
"",
"Connexion au serveur impossible",
"Impossible de se connecter à la base",
"Requête erronée"];
// Création d'une variable de type "String" pour le chemin d'accès au script PHP
var filepath:String;
// Création d'un tableau qui fera office de dataProvider pour le DataGrid
var scoreInfo:Array = [];
// Création d'un écouteur pour les clic sur les entêtes du datagrid permettant le tri des colones
var headerListener:Object = {};
headerListener.headerRelease = function(event:Object) {
switch (event.columnIndex) {
case 0:
if (temps_dg.getColumnAt(0).sortedUp) {
temps_dg.sortItemsBy(temps_dg.columnNames[0], Array.CASEINSENSITIVE | Array.DESCENDING);
} else {
temps_dg.sortItemsBy(temps_dg.columnNames[0], Array.CASEINSENSITIVE);
}
temps_dg.getColumnAt(0).sortedUp = !temps_dg.getColumnAt(0).sortedUp;
break;
case 1:
if (temps_dg.getColumnAt(1).sortedUp) {
temps_dg.sortItemsBy(temps_dg.columnNames[1], Array.CASEINSENSITIVE | Array.DESCENDING);
} else {
temps_dg.sortItemsBy(temps_dg.columnNames[1], Array.CASEINSENSITIVE);
}
temps_dg.getColumnAt(1).sortedUp = !temps_dg.getColumnAt(1).sortedUp;
break;
case 2:
if (temps_dg.getColumnAt(2).sortedUp) {
temps_dg.sortItemsBy(temps_dg.columnNames[2], Array.NUMERIC | Array.DESCENDING);
} else {
temps_dg.sortItemsBy(temps_dg.columnNames[2], Array.NUMERIC);
}
temps_dg.getColumnAt(2).sortedUp = !temps_dg.getColumnAt(2).sortedUp;
break;
}
}
// Fonction permettant de mettre un 0 devant les chiffres seuls ("1" deviendra "01")
function zerofill(n:Number):String {
if (n<10) return '0' + n.toString();
else return n.toString();
}
//Chemin absolu vers le script PHP
if (_url.indexOf("http") != 0) filepath = "http://localhost/wits_project/wits_project/jeux_flash/menu_jeux/";
//Chemin relatif
else filepath = "../menu_jeux/";
// limit fields to max characters allowed by database
prenom_ti.maxChars = 50;
nom_ti.maxChars = 50;
// put in some default values
temps_ti.text = 100;
date_ti.text = today.getFullYear() + '-' + zerofill(today.getMonth()+1) + '-' + zerofill(today.getDate());
select_lv.onLoad = function(ok:Boolean) {
if (ok) {
if (this.errorcode=="0") {
for (var i:Number=0; i < this.n; i++) {
scoreInfo.push(
{record:this["id"+i],
prenom:this["prenom"+i],
nom:this["nom"+i],
temps:Number(this["temps"+i])
});
}
// On affiche uniquement le prenom, le nom et le temps (pas l'id)
temps_dg.columnNames = ["prenom", "nom", "temps"];
// Formatage colone "Prénom"
temps_dg.getColumnAt(0).width = 200;
temps_dg.getColumnAt(0).sortedUp = false;
temps_dg.getColumnAt(0).headerText = "Prenom";
// Formatage colone "Nom"
temps_dg.getColumnAt(0).width = 200;
temps_dg.getColumnAt(0).sortedUp = false;
temps_dg.getColumnAt(0).headerText = "Nom";
// Formatage colone "Nom"
temps_dg.getColumnAt(2).width = 160;
temps_dg.getColumnAt(2).headerText = "Temps";
// Création du DataProvider
temps_dg.dataProvider = scoreInfo;
// Ajout de l'écouteur pour le clic sur l'entête des colones
temps_dg.addEventListener("headerRelease", headerListener);
msg_ta.text = "Vous pouvez enregistrer votre temps";
} else {
// On affiche le code de l'erreur
msg_ta.text = errorMsgs[Number(this.errorcode)];
// Si c'est une erreur de requête SQL, on affiche le type d'erreur
if (this.errorcode == "3") msg_ta.text += ": " + this.msg;
}
} else {
// Si le chargement ne s'est pas fait on affiche un message d'erreur
msg_ta.text = "Impossible de se connecter à la base";
}
}
msg_ta.text = "Chargement des temps...";
select_lv.sendAndLoad(filepath + "getscore.php", select_lv, "GET");
// Fonction s'executant après l'appel au script "insertscore.php"
// Elle retourne plusieurs controles, msg (erreur SQL), id (de la plupart des enregistrements)
insert_lv.onLoad = function(ok:Boolean) {
if (ok) {
if (this.errorcode == "0") {
// Mise à jour du DataProvider pour mettre à jour le dataGrid
scoreInfo.addItem(
{record:this.id,
prenom:prenom_ti.text,
nom:nom_ti.text,
temps:Number(temps_ti.text)
});
// Initialisation des champs
prenom_ti.text = '';
nom_ti.text = '';
temps_ti.text = 100;
msg_ta.text = "Le temps a bien été ajouté";
} else {
// On affiche le code de l'erreur
msg_ta.text = errorMsgs[Number(this.errorcode)];
// Si c'est une erreur de requête SQL, on affiche le type d'erreur
if (this.errorcode == "3") msg_ta.text += ": " + this.msg;
}
} else {
// Si le chargement ne s'est pas fait on affiche un message d'erreur
msg_ta.text = "Enregistrement impossible";
}
};
function insertRecord() {
// Controle au niveau du champs "prénom"
if (prenom_ti.text == '') {
msg_ta.text = "Tu dois entrer ton prénom !";
} else {
//On envoi les données au script PHP
insert_lv.prenom = prenom_ti.text;
insert_lv.nom = nom_ti.text;
insert_lv.temps = temps_ti.text;
insert_lv.sendAndLoad(filepath + "insertscore.php", insert_lv, "GET")
}
}
add_btn.addEventListener("click", insertRecord); |
Partager