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
| function getDatas(url, callback) {
let x, callbackOriginal = [], ligne, Field, Rec = [], objData = {};
//On fait une copie du tableau 'callback' qui contient les valeurs des éléments 'select' dans callbackOriginal
callbackOriginal = Object.values(callback);
fetch(url)
.then((response) => response.json())
.then((data) => {
objData = data.records;
for (x = 0; x < objData.length; x += 1) {
Field = objData[x]['fields'];
Rec = [Field.type_dossier, String(Field.commune), Field.type_decision, Field.etat, Field.circonscription];
//Rec[0] = Field.type_dossier, Rec[1] = String(Field.commune), Rec[2] = Field.type_decision, etc..
// On vérifie et remplace dans les deux tableaux ('callback' et 'Rec') si 'Field.type_decision' renvoi 'undefined'
if (Field.type_decision === undefined) {
Rec[2] = "";
callback[2] = "";
} else {
// Sinon on réinitialise la valeur par défaut via le tableau 'callbackOriginal'
callback[2] = callbackOriginal[2];
}
// On compare les deux tableaux et sils sont identiques, on ajoute une ligne dans la table
if (JSON.stringify(callback) === JSON.stringify(Rec)) {
ligne = `<tr class="data">` +
`<td> ${Field.type_dossier}</td>` +
`<td> ${Field.commune}</td>` +
`<td> ${Rec[2]}</td>` + // = Field.type_decision
`<td> ${Field.etat}</td>` +
`<td> ${Field.circonscription}</td>` +
`<td> ${Field.nom_dossier}</td></tr>`;
$('table').append(ligne);// Affiche une nouvelle ligne qui correspond aux critères de recherche
}
}
})
.catch(error => console.log('Erreur!'));
}
$(function () {
(function ($) {
//click sur le bouton en JQuery qui correspond à 'document.getElementById("rechecher").addEventListener('click', (e) => {})' en JavaScript
$('#rechecher').on('click', function () {
let URL = "https://opendata.paris.fr/api/records/1.0/search/?dataset=dossiers-recents-durbanisme&q=&rows=5000&sort=-commune&facet=type_dossier&facet=commune&facet=etat&facet=type_decision&facet=circonscription&refine.type_dossier=Permis+de+construire",
optionsselect = [];
$('.data').remove(); //RAZ tableau (on supprime de la table les balises '<tr class="data"></tr>')
//On rempli le tableau 'optionsselect' avec les valeurs des différents éléments 'select'
optionsselect[0] = $('#select_un option:selected').text(); //type_dossier
optionsselect[1] = $('#select_deux option:selected').text(); // commune
optionsselect[2] = $('#select_trois option:selected').text(); //type_decision
optionsselect[3] = $('#select_quatre option:selected').text(); // etat
optionsselect[4] = $('#select_cinq option:selected').text(); // circonscription
getDatas(URL, optionsselect); // Puis on appel la fonction avec ces deux paramètres
});
})(jQuery);
}); |
Partager